Authentification via script PHP sur formulaire GET

Eléphanteau du PHP | 21 Messages

23 sept. 2012, 21:13

Bonjour à tous!

Alors voilà, je connais un site web qui, pour s'y connecter en tant que membre, utilise la méthode GET. Après plusieurs recherches, j'ai remarqué qu'il suffisait d'accéder à /login/?action=login&user=XXX&pass=XXX pour se connecter, sans passer par la page de connexion en entrant dans les champs les infos.
Il faut savoir qu'en accédant donc à cet URL, le serveur vous redirige directement sans interpage à la page d'accueil.

Je voudrais créer un script PHP sur mon serveur qui se connecte automatiquement sur le site, donc en utilisant /login/?action=login&user=XXX&pass=XXX ( + rapide ).
Or, il m'est difficile d'utiliser curl, puisque ce module est plutôt fait pour la méthode POST!
De plus, j'ai l'impression que la redirection complique la tâche.

En résumé : je voudrais que mon serveur se connecte au site ( en utilisant les cookies ) et ensuite m'affiche la page membre du site ( enfin, ça je sais faire ! ).

Je bloque donc pour l'authentification automatisée et l'histoire des cookies !

Pourriez-vous m'aider ? :-)

Cordialement,

ViPHP
xTG
ViPHP | 7331 Messages

24 sept. 2012, 10:53

cUrl est ton amie.
Car justement, elle ne fait pas que POST, puisque les données en GET sont... l'url ! ;)

Eléphanteau du PHP | 21 Messages

24 sept. 2012, 12:07

cUrl est ton amie.
Car justement, elle ne fait pas que POST, puisque les données en GET sont... l'url ! ;)
Pourrais-tu me guider ? Je ne connais que Curl pour POST, mais je ne comprends pas comment utiliser les cookies via GET en utilisanr l'URL !


Cordialement,

ViPHP
ViPHP | 2577 Messages

24 sept. 2012, 12:57

Lorsque tu mets l'url, tu inclues les paramètres dedans en méttant à la fin : ?action=login&user=XXX&pass=XXX

Eléphanteau du PHP | 21 Messages

24 sept. 2012, 13:08

Lorsque tu mets l'url, tu inclues les paramètres dedans en méttant à la fin : ?action=login&user=XXX&pass=XXX
Hum oui, je faisais $url=....../?action=login&user=XXX&pass=XXX
Ensuite je faisais curl_init($url) <--- la procédure quoi ( je parle avec mon portable, si je commets des fautes c'est normal ^^ )

ViPHP
xTG
ViPHP | 7331 Messages

24 sept. 2012, 14:54

Donc tu as toutes les billes. ;)
Pour le reste c'est comme avec POST, sauf que tu ajoutes pas de données en POST.

Eléphanteau du PHP | 21 Messages

24 sept. 2012, 15:52

Donc tu as toutes les billes. ;)
Pour le reste c'est comme avec POST, sauf que tu ajoutes pas de données en POST.
<?
$lien = 'http://...../register/?action=login&returnpage=&login_login=XXX&login_password=XXX'; // Le fait qu'il est y une redirection n'influence-pas?

$path_cookie = 'coookies.txt';
if (!file_exists(realpath($path_cookie))) touch($path_cookie);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $lien);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie));

$return = curl_exec($curl);
curl_close($curl);

$lien2 = 'http://..../homr.php';   //Normalement si l'on est connecté, on devrait voir "Panel" sur home.php

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $lien2);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, realpath($path_cookie));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, realpath($path_cookie));

$return = curl_exec($curl);
echo $return;

curl_close($curl);

unlink($path_cookie);
?>

ViPHP
xTG
ViPHP | 7331 Messages

24 sept. 2012, 16:41

La redirection n'est pas récupérée par cUrl il me semble vu qu'elle récupère uniquement le résultat de la requête HTTP.
Donc si ton but est la connexion et les données de la page après redirection il faut faire deux requêtes cUrl.

Eléphanteau du PHP | 21 Messages

24 sept. 2012, 16:55

La redirection n'est pas récupérée par cUrl il me semble vu qu'elle récupère uniquement le résultat de la requête HTTP.
Donc si ton but est la connexion et les données de la page après redirection il faut faire deux requêtes cUrl.
Mon but est ( pour l'instant ) de me connecter au site via Curl, puis d'afficher la page du site d'accueil MAIS avec l'authentification ( donc la page avec par exemple : Bienvenue M.X ).

Or, il m'affiche toujours la page en tant qu'utilisateur non connecté ( basique quoi )

ViPHP
xTG
ViPHP | 7331 Messages

24 sept. 2012, 18:53

Et tu es sûr que tu arrives à te connecter en accédant directement à cette url via ton navigateur ?
As-tu regardé ce qu'il y a dans le retour de curl ?

Eléphanteau du PHP | 21 Messages

24 sept. 2012, 19:07

Oui j'en suis sûr et certain.

Curl m'affiche la page normale, avec en gros "connectez-vous" au lieu d'avoir "espace membre". Impossible de se connecter donc avec curl!

ViPHP
xTG
ViPHP | 7331 Messages

24 sept. 2012, 19:46

Et le fichier cookies.txt il est rempli ?

Eléphanteau du PHP | 21 Messages

24 sept. 2012, 21:00

Oui, avec par exemple lang=fr uid=XXXXXXXX

ViPHP
xTG
ViPHP | 7331 Messages

25 sept. 2012, 08:46

Donc il a bien chargé la page si tu récupères des cookies.
Regardes le premier $return.

Eléphanteau du PHP | 21 Messages

25 sept. 2012, 12:06

Le premier $return m'affiche blanc puisque la page en soit n'a pas d'element a afficher. Surement à cause de la redirection!