Bonjour,
J'essaie d'accéder à un site via des requêtes POST, sans passer par les formulaires.
Envoyer les données semble bien marcher :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $user=urlencode($_GET['user']);
$password=urlencode($_GET['password']);
$data='login='.$user.'&pass='.$password;
$message = "POST http://lesite.org/page.php HTTP/1.0\r\n";
$message .= "Content-type: application/x-www-form-urlencoded\r\n";
$message .= "Referer: http://lesite.org/page.php\r\n";
$message .= "Content-length: ".strlen( $data )."\r\n";
$message .= "\r\n";
$message .= $data."\r\n";
echo '<pre>'.$message.'</pre>';
$fd = fsockopen( gethostbyname('lesite.org'), 80 );
@fputs($fd,$message);
$c='';
while (!@feof($fd)) {
$c.=fgets($fd, 128);
} |
Le problème, c'est que $c contient ceci :
<html><head><meta http-equiv="refresh" content="0;url=http://lesite.org/page.php"></meta></head></html>
Donc une redirection... En effet, si je fais afficher $c, je suis redirigé vers cette page et je suis bien identifié... Sauf que je voudrais récupérer le contenu de cette page.
J'ai essayé avec fgets, en mettant le code suivant à la suite :
1 2 3 4 5 6 7 8 9 10
| $url='http://lesite.org/page.php';
if (!$fp = fopen($url,"r"))
echo 'Erreur avec l\'adresse donnée';
$page='';
if ($fp) {
while (!feof($fp)) {
$page .= @fgets($fp, 4096);
}
}
echo $page; |
Mais du coup c'est comme si je n'avais pas entré les données du formulaire, je n'y comprends rien !
Quelqu'un connait la solution de ce problème ?
Partager