Oui, je l'ai testé aussi, mais marche pas mieux. En fait, mon objectif est de m'authentifier sur des sites (digg like), et de soumettre en automatique des formulaires. Dans l'exemple ci-dessous, je ne comprends pas pourquoi avec ce code et le paquet PEAR+Http_Request, je n'arrive pas à passer l'authentification.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| include_once("pear.php");
require_once "HTTP/Request.php";
require_once "HTTP/session.php";
$req =& new HTTP_Request("http://www.scoopeo.com/user/login");
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData("user[login]", "MON_LOGIN");
$req->addPostData("user[password]", "MON_PASS");
if (!PEAR::isError($req->sendRequest())) {
$response1 = $req->getResponseHeader();
} else {
$response1 = "";
}
echo $req->getResponseBody(); |
après, je me suis dit qu'il fallait faire plusieurs requêtes successives pour garder le PHPSESSID. J'ai donc ajouté à la fin de ma 1ère requête
$cookie=$req->getResponseCookies();
et dans ma 2e, j'ai ajouté ça
$req2->addCookie($cookie[0]['name'], $cookie[0]['value']);
Ensuite, j'ai testé sur ma machine, d'afficher les var de session, et c'est ca qui a mon avis pose probleme. Voila le code pour tester:
Ex:
test.php
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
| <?php
include_once("pear.php");
require_once "HTTP/Request.php";
require_once "HTTP/session.php";
$req =& new HTTP_Request("http://localhost/aaaa/authentification.php");
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData("type", "login");
if (!PEAR::isError($req->sendRequest())) {
$response1 = $req->getResponseHeader();
} else {
$response1 = "";
}
$cookie=$req->getResponseCookies();
print_r ($req->getResponseHeader());
echo $req->getResponseBody();
echo "<hr/>";
$req =& new HTTP_Request("http://localhost/aaaa/final.php");
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData("type", "login");
if (!PEAR::isError($req->sendRequest())) {
$response1 = $req->getResponseHeader();
} else {
$response1 = "";
}
$cookie=$req->getResponseCookies();
print_r ($req->getResponseHeader());
echo $req->getResponseBody();
?> |
authentification.php
1 2 3 4 5
| <?php
session_start();
$_SESSION["type"]="cocoxxxxnut";
header("location :final.php");
?> |
final.php
1 2 3 4 5 6
| <?php
session_start();
echo "xx".$_SESSION["type"]."xx";
?> |
Partager