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 :

cURL et récupération des POST sur le serveur distant


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster amateur

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut cURL et récupération des POST sur le serveur distant
    Bonjour à tous !

    je souhaite permettre à mes utilisateurs de ne plus avoir à se connecter plusieurs fois pour accéder à mes sites (base de données membres commune aux sites).

    pour cela, j'utilise cURL qui envoie par un POST les identifiants de connexion sur l'autre site. Cela fonctionne car je reçois bien un tableau associatif, mais je suis incapable d'utiliser les données qu'il contient.

    Voici plus d'éléments :

    Code qui fait l'envoi du POST par cURL et qui fait la redirection :

    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
     
     
    $loginUrl   = "http://www.mon-site-cible/index.php";
     
    $data = array('emailCURL' => $_SESSION['email'],
                  'passCURL' => $_SESSION['pass']
                  );
     
     
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_NOBODY, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_USERAGENT,
        "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
     
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_exec($ch);
     
    curl_setopt($ch, CURLOPT_URL, $loginUrl);
    //do stuff with the info with DomDocument() etc
    $html = curl_exec($ch);
    curl_close($ch);
     
    header('location: '.$loginUrl.'');


    Pour vérifier que je reçois bien dans mon site cible, en début de page, j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("mon_adresse_email", "Post", print_r($_POST, true));


    Et je reçois bien : Array
    (
    [emailCURL] => mon_email
    [passCURL] => Mon_mot_de_passe
    )



    MAIS : impossible de réutiliser sous forme $_POST['emailCURL'] pour lancer la connexion...

    Merci beaucoup de m'aider, je sens que je ne suis pas loin de la solution

  2. #2
    Membre averti
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster amateur

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut toujours pas trouvé malgré mes efforts......
    Si vous trouvez, SVP

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi il t'est "impossible de réutiliser" la variable ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster amateur

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    C'est tout le mystère !

    j'arrive à m'envoyer les variables puisque sur le site cible, la première ligne est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("mon_adresse_email", "Post", print_r($_POST, true));
    et je reçois bien un email avec les variables.

    Cependant je ne peux ni les afficher sous forme de tableau :
    print_r($_POST) renvoie un tableau VIDE : array ()
    print_r($_POST, true) ne renvoie rien

    ni les utiliser directement sous forme de variable $_REQUEST['emailCURL'] ou $_POST['emailCURL']

    Après je me suis lâché : j'ai tout balancé :

    foreach($_POST as $key => $val) echo '$_POST["'.$key.'"]='.$val.' <br>';
    foreach($_GET as $key => $val) echo '$_GET["'.$key.'"]='.$val.' <br>';
    foreach($_SESSION as $key => $val) echo '$_SESSION["'.$key.'"]='.$val.' <br>';
    foreach($_REQUEST as $key => $val) echo '$_REQUEST["'.$key.'"]='.$val.' <br>';

    et je n'obtiens rien non plus !!




    JE N'Y COMPRENDS RIEN : si je peux m'envoyer les variables par email, je devrais pouvoir les afficher et les utiliser !!!!!!!!!!!!!!!!!!!!!!!!!

    Pour info, voici mon code sur le fichier "http://www.mon-site-cible/index.php"

    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
    <?php
     
    echo "<h1>TEST</h1>";
    echo "<pre>";
    echo "Tableau Print_r avec true";
    print_r($_POST, true);                      // n'affiche rien
     
    echo "<br>";
     
    echo "Tableau Print_r sans true";
    print_r($_POST);                             // affiche un tableau vide
     
    echo "</pre>";
     
    mail("mon_email@email.com", "Post", print_r($_POST, true));           // fonctionne très bien !! je reçois mes variables par email sous forme de tableau : Array([emailCURL] => mon_email; [passCURL] => Mon_mot_de_passe) 
     
     
    ?>

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Webmaster amateur

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Par défaut
    Dans le doute .... je viens de tester si cURL est bien activé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (extension_loaded('curl')) {
        echo "curl est dispo";
    } else {
        echo "curl n'est pas dispo";
    }
    .... et c'est bon !! (cURL dispo)

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'une part ton code avec cURL ne fait qu'envoyer la requête, il n'affiche pas le résultat, donc tous tes echo vont dans le vide.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2013, 02h33
  2. Réponses: 5
    Dernier message: 09/01/2012, 09h19
  3. Recupérer des infos sur un serveur distant via oracle 10g
    Par TAMBOOH dans le forum Administration
    Réponses: 0
    Dernier message: 05/12/2008, 09h46
  4. [FTP] Récupération de fichier sur un serveur distant
    Par valouche dans le forum Langage
    Réponses: 15
    Dernier message: 06/03/2008, 10h30

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