fsockopen et passage de variable post

fsockopen et passage de variable post - PHP - Programmation

Marsh Posté le 09-02-2005 à 04:18:47    

:hello: ,
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 :
  1. 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 :
  1. if ($_GET['action']=='') {
  2. $url = 'http://headhunters.org.au/mailman/admin/it_headhunters.org.au';
  3. $args = 'adminpw=pass';
  4. $url = parse_url($url);
  5. if (empty($url['port'])) $url['port'] = 80;
  6. $socket = fsockopen($url['host'], $url['port'], $errno, $errstr)
  7.         or print("error # $errno while opening socket: $errstr <br />\n" );
  8. fputs($socket, "POST " . $url['path'] . " HTTP/1.0\n" );
  9. fputs($socket, "Host: " . $url['host'] . "\n" );
  10. fputs($socket, "User-Agent: shmertmethod\n" );
  11. fputs($socket, "Content-Type: application/x-www-form-urlencoded\n" );
  12. fputs($socket, "Content-Length: " . strlen($args) . "\n" );
  13. fputs($socket, "\n" );
  14. fputs($socket, $args);
  15. $out = '';
  16. while (!feof($socket)) {
  17.         $line = fgets($socket, 1024);
  18. if (preg_match('/^set-cookie:/i', $line)) {
  19.  $cookie = $line;
  20.                 break;
  21.         }
  22. }
  23. fclose($socket);
  24. if (empty($cookie)) {
  25.         echo "Login failed, or could not generate a cookie";
  26. } else {
  27.        header("Location: http://" . $url['host'] . "/modules/maillist/?action=1&data=$cookie" );
  28. }
  29. }//end if  
  30. ..
  31. .
  32. .
  33. if ($_GET['action']=='1') {
  34. $cookie = $_GET['data'];
  35. $couple = explode(";",$cookie);
  36. ...// on recupere les variables
  37. setcookie($cookie_name,  $cookie_value, false, $cookie_path);
  38. //header("Location: http://headhunters.org.au/mailman/ [...] /add&#034; );
  39. //cet header ci dessus marche bien et me redirige a la bonne page.
  40. header("Location: http://headhunters.org.au/modules/ [...] on=2&#034; );


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 :
  1. if ($_GET['action']=='2') {
  2. $url = 'http://headhunters.org.au/mailman/admin/it_headhunters.org.au/members/add';
  3. $args = 'subscribe_or_invite=0';
  4. $url = parse_url($url);
  5. if (empty($url['port'])) $url['port'] = 80;
  6. $socket = fsockopen($url['host'], $url['port'], $errno, $errstr)
  7.         or print("error # $errno while opening socket: $errstr <br />\n" );
  8. fputs($socket, "POST " . $url['path'] . " HTTP/1.0\n" );
  9. fputs($socket, "Host: " . $url['host'] . "\n" );
  10. fputs($socket, "User-Agent: shmertmethod\n" );
  11. fputs($socket, "Content-Type: application/x-www-form-urlencoded\n" );
  12. fputs($socket, "Content-Length: " . strlen($args) . "\n" );
  13. fputs($socket, "\n" );
  14. fputs($socket, $args);
  15. $out = '';
  16. while (!feof($socket)) {
  17.         $line = fgets($socket, 1024);
  18. echo $line;
  19. }
  20. fclose($socket);
  21. }


 
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
Reply

Marsh Posté le 09-02-2005 à 04:18:47   

Reply

Marsh Posté le 09-02-2005 à 05:31:55    

en fait cest peut etre parceque le browser et la fonction fsockopen ne sont pas lier , quand j utilise fsockopen il nes sais rien qu il y  a un cookie et que je suis de ja authentifier :/
 
comment faire

Reply

Marsh Posté le 09-02-2005 à 08:41:17    

up

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed