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

Langage PHP Discussion :

[Sessions] Perte de connexion (Curl)


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Sessions] Perte de connexion (Curl)
    Bonjour, je rencontre un problème pour accéder à une page pour récupérer son contenu (statistiques).

    C'est un panel de gestion qui requière :
    -une authentification (username + password)
    -puis qui mène à des pages de gestion nécessitant d'être connecté

    Les cookies utilisés par les pages :
    -PHPSESSID uniquement

    La page en question :
    Lien vers la page
    -username : test
    -password : test

    J'essaye d'y accéder avec l'extension Curl de php

    Le code :


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
     
    /************************************************** 
    Premiere requete : Connexion au Panel
    **************************************************/ 
     
    // Page cible du formulaire
     
    $url = 'http://demo.living-bots.net/index.php?s=logincheck'; 
     
    // Initialisation et options 
     
    $ch = curl_init($url); 
     
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     
    // Les données à envoyer au formulaire
     
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, array( 
      'name' => 'test', 
      'pass' => 'test', 
      'login' => 'submit' 
    )); 
     
    // Connexion & récupération de la page
     
    $res = curl_exec($ch); 
     
    // Affichage de la page qui confirme la connexion
     
    echo $res;
     
     
    /************************************************** 
    Deuxième requete : Accès à une page
    **************************************************/ 
     
    // Connexion à une autre page du Panel une fois connecté
     
    $url2 = 'http://demo.living-bots.net/index.php?s=ghostselect'; 
     
    // initialisation de la deuxième page
     
    $ch2 = curl_init($url2); 
     
    curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); 
     
    // Récupération de la deuxième page
     
    $res2 = curl_exec($ch2); 
     
    // Affichage de la deuxième page
     
    echo $res2;
     
    ?>

    La première page prouve que je suis bien loggé mais la deuxième échoue, comme si je n'étais plus connecté.
    A noter que je n'ai même pas fais curl_close($ch); lors de la première requête.

    Merci de votre aide, j'ai cherché sur de nombreux sites la solution.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    je crois que tu devrais essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://demo.living-bots.net/index.php?s=login
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://demo.living-bots.net/index.php?s=logincheck
    parce que c'est ce qu'il se passe manuellement...
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Voici mon deuxième test, j'ai enlevé le deuxième curl_init() car apparement çà initialisait une autre sessions lors de la deuxième page.

    Voici le code et je passe par trois pages :
    -page de login
    -page de confirmation du login
    -autre page du panel

    Les deux premières s'affichent bien mais la dernière non.

    le code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
     
    /************************************************** 
    Premiere requete : Connexion au Panel
    **************************************************/ 
     
    // Page cible du formulaire
     
    $url = 'http://demo.living-bots.net/index.php?s=login'; 
     
    // Initialisation et options 
     
    $ch = curl_init($url); 
     
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     
    // Les données à envoyer au formulaire
     
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, array( 
      'name' => 'test', 
      'pass' => 'test', 
      'login' => 'submit' 
    )); 
     
    // Connexion & récupération de la page
     
    $res = curl_exec($ch); 
     
    // Affichage de la page qui confirme la connexion
     
    echo $res;
     
     
    /************************************************** 
    Deuxième requete : Accès à une page
    **************************************************/ 
     
    // Connexion à une autre page du Panel une fois connecté
     
    // initialisation de la deuxième page
     
     
    curl_setopt ($ch , CURLOPT_URL , "http://demo.living-bots.net/index.php?s=logincheck");
     
     
    // Récupération de la deuxième page et affichage
     
    echo curl_exec($ch); 
     
    // La troisième page
     
    curl_setopt ($ch , CURLOPT_URL , "http://demo.living-bots.net/index.php?s=ghost&botid=10048");
     
    $res3 = curl_exec($ch); 
     
    // Affichage de la troisième page
     
    echo $res3;
     
     
    ?>

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    C'est résolu voici le code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
    define('LOGIN', 'test');
    define('PASSWORD', 'test');
    define('AUTHENTIFICATION', 'http://demo.living-bots.net/index.php?s=logincheck');
    define('PAGE_PRIVEE', 'http://demo.living-bots.net/index.php?s=ghost&botid=10048');
    define('PAGE_TEST', 'http://demo.living-bots.net/index.php?s=ghoststatus');
     
    $sid = '';
     
    /**
     * Première connexion : authentification
     **/
    $ch = curl_init(AUTHENTIFICATION);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS,
        array(
            'name' => LOGIN,
            'pass' => PASSWORD
        )
    );
    curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt'));
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $ret = curl_exec($ch);
    if ($ret === FALSE) {
        die(curl_error());
    }
    curl_close($ch);
    if (preg_match('/(PHPSESSID=[0-9a-z,-]{32,40})/i', $ret, $m)) {
        $sid = '?' . $m[1];
    } else if (preg_match('#<input\s+type="hidden"\s+name="([^\r\n\t <>\'"\\\]+)"\s+value="([0-9a-z,-]{32,40})"\s*/?>#i', $ret, $m)) {
        $sid = '?' . $m[1] . '=' . $m[2];
    }
     
    /**
     * Deuxième partie : réutilisation de la session sur une page tierce
     **/
     
    $ch = curl_init(PAGE_PRIVEE . $sid);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
    $ret = curl_exec($ch);
    if ($ret === FALSE) {
        die(curl_error());
    }
    curl_close($ch);
    echo $ret;
     
    $ch = curl_init(PAGE_TEST . $sid);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
    $ret = curl_exec($ch);
    if ($ret === FALSE) {
        die(curl_error());
    }
    curl_close($ch);
    echo $ret;
     
    ?>

Discussions similaires

  1. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  2. [IB6.0]-Perte de connexion Client
    Par GroupeEL dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 21/03/2005, 15h43
  3. [JNDI] Problème en cas de perte de connexion
    Par Marc_P dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 19/10/2004, 14h45
  4. Perte de connexion BD
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 30/10/2003, 10h23
  5. Perte de connexion (bis)
    Par rgarnier dans le forum XMLRAD
    Réponses: 7
    Dernier message: 28/05/2003, 11h14

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