IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

cURL et les redirections automatiques


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut cURL et les redirections automatiques
    Bonjour !

    J'aurai besoin d'un ptit coup de main. Je souhaite me connecter en cURL sur 1fichier.com. Je passe en paramètre tout ce qu'il faut, le login et le password,et j'envoi les données. Quand je fais afficher la page cURL obtenue, j'obtiens bien le message de 1ficheir comme quoi je me suis bien loggué et que je vais être redirigé, sauf que 2sec après je me retrouve sur la page de login non loggué

    Vous auriez une petite idée? Voici mon code (avec login et password faux pour ici bien entendu) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $username = 'Matkil888';
    	$password = 'test';
    	$loginUrl = 'http://www.1fichier.com/login.pl';
    	$cookie='cookies/cookie.txt';
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	//curl_setopt($ch, CURLOPT_HEADER, 1);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);		
    	//curl_setopt($ch, CURLOPT_REFERER, 'http://www.1fichier.com/login.pl');
    	//curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
    	curl_setopt($ch, CURLOPT_URL, $loginUrl);
    	// ENABLE HTTP POST
    	curl_setopt($ch, CURLOPT_POST, 1);
    	curl_setopt($ch, CURLOPT_POSTFIELDS, 'mail='.$username.'&pass='.$password.'&submit=Login');
    	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    	$store = curl_exec($ch);
    	echo $store;
    Comme vous le voyez, j'ai mis en commentaire des lignes que j'ai essayé et qui n'ont rien changé à mon problème..

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 164
    Points : 303
    Points
    303
    Par défaut
    Tu as visiblement un problème de session.

    Le cookie me semble la piste à suivre.
    Il faudrait regarder les options disponibles pour les cookies, telles que :
    - CURLOPT_COOKIESESSION
    - CURLOPT_COOKIE
    - CURLOPT_COOKIEFILE

    Ceci n'est qu'une supposition.

    Plus d'infos ici : http://www.php.net/manual/fr/function.curl-setopt.php

  3. #3
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Merci je vais aller explorer ça

  4. #4
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Moi qui ait galéré pendant plusieurs heures, tu as réglé mon problème en un seul post ! Je te remercie beaucoup !

    Pour ceux qui passeront par là, j'ai ajouté cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl_setopt($ch,CURLOPT_COOKIESESSION,true);
    Merci encore dolu02 !

    A+

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 164
    Points : 303
    Points
    303
    Par défaut
    Content d'avoir pu aider!

  6. #6
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Salut !

    Bon en fait c'était une coïncidence, il avait gardé mon cookie du navigateur donc lors de mon test ça a fonctionné lol

    J'ai réussi en faisant comme ça :

    Etape 1 : Connexion à 1fichier.com en stockant le cookie sur mon serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $username = 'test';
    	$password = 'test';
    	$loginUrl = 'http://www.1fichier.com/login.pl';
    	$cookie=$_SERVER['DOCUMENT_ROOT'].'/cookies/cookie'.session_id().'.txt';
     
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);	
    	curl_setopt($ch, CURLOPT_URL, $loginUrl);
    	curl_setopt($ch, CURLOPT_POST, 1);
    	curl_setopt($ch, CURLOPT_POSTFIELDS, 'mail='.$username.'&pass='.$password.'&submit=Login');
    	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    	curl_setopt($ch,CURLOPT_COOKIESESSION,true);
    	$store = curl_exec($ch);
    	curl_close($ch);
    Etape 2 (pour vérifier si ça a fonctionné) : Connexion à la page d'accueil de 1fichier.com en spécifiant d'utiliser le cookie préalablement enregistré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ch = curl_init();
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    	curl_setopt($ch, CURLOPT_URL, 'http://www.1fichier.com/');
    	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    	$store2 = curl_exec($ch);
    	echo $store2;
    	curl_close($ch);
    le echo $store2 me redirige bien sur la page de 1fichier.com loggué sur mon compte

    Voilà passez un bon week-end !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP] Redirection automatique
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 08/08/2011, 10h24
  2. Redirection automatique lors d'une sélection dans un Select
    Par MiJack dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/12/2004, 18h09
  3. Réponses: 2
    Dernier message: 15/06/2004, 11h22
  4. Trouver les redirections dans des traces
    Par severine dans le forum Développement
    Réponses: 3
    Dernier message: 21/04/2004, 18h51
  5. Réponses: 4
    Dernier message: 16/03/2004, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo