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
Partager