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 :

php redirection avec cURL conserver session


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut php redirection avec cURL conserver session
    Bonjour,
    je tente de faire des redirections en utilisant curl.
    Site en deux langues/2 DB indépendantes d’utilisateurs, la redirection se fait si un utilisateur d’une langue tente de se logguer a partir du site de l’autre langue.
    Ainsi:
    sur la page (disons anglaise) devant faire la redirection je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $url = “<a href="http://monsite-fr.test/page.php”;" target="_blank">http://monsite-fr.test/page.php”;</a>
    $postdata = array();
    $postdata['membre_id'] = “‘”.$membre->id.”‘”;
    $sid = ”;
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HEADER, 0);
    curl_setopt($crl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($crl, CURLOPT_POST, true);
    curl_setopt ($crl, CURLOPT_POSTFIELDS, $postdata);
    $result = curl_exec($crl);
    curl_close($crl);
    echo $result;
    de l’autre coté sur page.php, je veux créer une variable $_SESSION à partir de la valeur passée en POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($_REQUEST['membre_id'])){
        $_SESSION['membre_id'] = $_REQUEST['membre_id'];
    cela marche également, seulement, pour tous les liens de cette page, quand je les clique, sur les pages suivantes, la session change, le session_id() n’est plus le même.

    j’ai également essayé d’exécuter curl vers une url en lui ajoutant ‘?PHPSSID=xxxx’ à la fin, même problème car je drvrais l'ajouter à tous mes liens, pas très pratique...

    Donc ma question, est-ce qu’il existe un moyen de faire en sorte que la session soit conservée en utilisant cURL?

    Merci pour toute aide…

    Alex

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 134
    Points
    134
    Par défaut
    Oui.

    Regarde http://fr.php.net/manual/fr/function...topt.php#85956 et plus particulièrement ces 3 lignes :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
    curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());

    Bon courage !


    Dutiona.

  3. #3
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    Je ne sais pas pourquoi tu te prends la tête avec CURL, la tu t'attaque à l'idée de faire un proxy ...

    La solution simple : la personne se voit attribuer un cookie qui dit sur quel site elle dois être envoyée, si elle va sur le mauvais, un header location et elle reviens sur le bon
    Pour déterminer le cookie, tu attends que la personne se loggue, si elle se loggue sur le site de la première langue, tu l'authentifie dessus, si ça marche pas, tu passe à la langue suivante ( toujours au header, en te servant de la session pour savoir ce que tu as déjà fait, une fois le tout fini, si il est pas loggué, c'est qu'y a une erreur -> retour à celui de départ )( solution bourrin, mais vu que les DB sont indépendantes )

    J'espère que ça te servira.

    Bonne journée.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut @Dutiona
    Merci de la réponse,
    mais la redirection me fait changer de domaine (de monsite-fr.test vers monsite-en.test), et malgré bcp de tests pas moyen de conserver le session_id.
    Si effectivement en le passant par l'url ou en cookie mais bon, me faudrait reecrire ts les liens enfin il m'a semblé...
    et puis je ne voulais pas vraiment utiliser de cookies.

    Du oup, vais faire autrement, avec une racine commune aux deux langues et en découpant ensuite avec monsite.com(ou .fr)/en(ou /fr) selon la langue, en redirigeant juste en dessous de la racine, on verra bien si ca marche mieux.

    ++

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 134
    Points
    134
    Par défaut
    urlrewriting est ton ami. Tu réécrit site.com/fr/blabla par fr.site.com (ou site.fr) et tu réécris site.com/en/blabla par en.site.com (ou site.co.uk).

    Rien ne change en php mais le navigateur est toujours sur le même domaine. Donc, il renvoie toujours le même cookie de session.

Discussions similaires

  1. [PHP 5.0] PHP login avec CURL
    Par stomerfull dans le forum Langage
    Réponses: 1
    Dernier message: 01/02/2012, 13h14
  2. PHP redirection avec header.
    Par freeman43 dans le forum Langage
    Réponses: 4
    Dernier message: 29/03/2011, 00h36
  3. redirection avec curl
    Par betadev dans le forum Langage
    Réponses: 8
    Dernier message: 05/11/2010, 15h54
  4. Style Switcher CSS/PHP > redirection avec 2 includes
    Par swaag dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 11/12/2006, 15h50
  5. [cURL] Redirection avec Curl: Une curiosité ?
    Par cybertj dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/11/2006, 21h20

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