xiluoc un pc pour les unirs .... | ,
j essaye de faire un script qui envoit directement des variables POST a un formulaire . Pour acceder a ce formulaire il faut auparevent s authentifier avec une mot de pass ce qui aura pour effet d envoyer le cookie suivant.
Code :
- headhunters.org.au+admin=280200000069973b0942732800000066306532616566636535643763613962623562656264303738333465646131323234633162336337; Path=/mailman/; Version=1;
|
mon script se connecte a la page d authentification, recupere le cookie dans le header de reponse. setcookie (mes var recupere)
Code :
- if ($_GET['action']=='') {
- $url = 'http://headhunters.org.au/mailman/admin/it_headhunters.org.au';
- $args = 'adminpw=pass';
- $url = parse_url($url);
- if (empty($url['port'])) $url['port'] = 80;
- $socket = fsockopen($url['host'], $url['port'], $errno, $errstr)
- or print("error # $errno while opening socket: $errstr <br />\n" );
- fputs($socket, "POST " . $url['path'] . " HTTP/1.0\n" );
- fputs($socket, "Host: " . $url['host'] . "\n" );
- fputs($socket, "User-Agent: shmertmethod\n" );
- fputs($socket, "Content-Type: application/x-www-form-urlencoded\n" );
- fputs($socket, "Content-Length: " . strlen($args) . "\n" );
- fputs($socket, "\n" );
- fputs($socket, $args);
- $out = '';
- while (!feof($socket)) {
- $line = fgets($socket, 1024);
- if (preg_match('/^set-cookie:/i', $line)) {
- $cookie = $line;
- break;
- }
- }
- fclose($socket);
- if (empty($cookie)) {
- echo "Login failed, or could not generate a cookie";
- } else {
- header("Location: http://" . $url['host'] . "/modules/maillist/?action=1&data=$cookie" );
- }
- }//end if
- ..
- .
- .
- if ($_GET['action']=='1') {
- $cookie = $_GET['data'];
- $couple = explode(";",$cookie);
- ...// on recupere les variables
- setcookie($cookie_name, $cookie_value, false, $cookie_path);
- //header("Location: http://headhunters.org.au/mailman/ [...] /add" );
- //cet header ci dessus marche bien et me redirige a la bonne page.
- header("Location: http://headhunters.org.au/modules/ [...] on=2" );
|
cette partie marhce bien car quand je rentre une url ne fonctionnant que lorsque que l authenfication est valide celle ci saffiche. par contre l etape 2 qui consiste a envoyer d autre variable post a la page http://headhunters.org.au/mailman/ [...] embers/add qui est accesible en entrant l url directement, me renvoie la page de login comme si il ne prenait pas en compte le cookie pourtant present.
Code :
- if ($_GET['action']=='2') {
- $url = 'http://headhunters.org.au/mailman/admin/it_headhunters.org.au/members/add';
- $args = 'subscribe_or_invite=0';
- $url = parse_url($url);
- if (empty($url['port'])) $url['port'] = 80;
- $socket = fsockopen($url['host'], $url['port'], $errno, $errstr)
- or print("error # $errno while opening socket: $errstr <br />\n" );
- fputs($socket, "POST " . $url['path'] . " HTTP/1.0\n" );
- fputs($socket, "Host: " . $url['host'] . "\n" );
- fputs($socket, "User-Agent: shmertmethod\n" );
- fputs($socket, "Content-Type: application/x-www-form-urlencoded\n" );
- fputs($socket, "Content-Length: " . strlen($args) . "\n" );
- fputs($socket, "\n" );
- fputs($socket, $args);
- $out = '';
- while (!feof($socket)) {
- $line = fgets($socket, 1024);
- echo $line;
- }
- fclose($socket);
- }
|
echo $line en boucle me sort l invite de login http://headhunters.org.au/mailman/ [...] ers.org.au
la chose bizarre est que lorsque je clic ok sans entrez aucun mot de pass la il maffiche sans pb http://headhunters.org.au/mailman/ [...] embers/add
je seche, une histoire de header ? est que je doit dire a letape 2 de lire le cookie d abord ou ca se fait automatiquement normalement vue l argument path du cookie
Tout ca pour automatiser linscriptions des membres d un site a une mailing list, sans passez par le joindre/email/confirmation , fonctionalite offerte par http://headhunters.org.au/mailman/ [...] embers/add jsutement Message édité par xiluoc le 09-02-2005 à 04:19:22
|