fsockopen en POST - session expiré : methode

fsockopen en POST - session expiré : methode - PHP - Programmation

Marsh Posté le 01-08-2008 à 09:58:12    

Bonjour,
 
j'ai besoin de me connecter à une page sur un site distant en lui envoyant des données POST pour simuler la soumission du formulaire qui s'y trouve et récupérer les résultats.(je précise, que je n'ai pas accès à la base de donnée).
 
Etape 1 : Pour accéder à cette page, il faut au préalable être logué sur une page d'authentification (champs login et mot de passe).
je précise que c'est un accès en https.
 
Je me connecte à la page d'authentification comme ceci :  
 

Code :
  1. $fp = fsockopen("ssl://www.monsite.fr", 443);
  2. $query = 'user=mylogin&password=mypass';
  3. $request =
  4. "POST /repertoire/authentification/valide HTTP/1.1\r\n".
  5. "Host: www.monsite.frrn".
  6. "Content-type: application/x-www-form-urlencoded\r\n".
  7. "Content-length: " . strlen($query) . "\r\n".
  8. "Connection: close\r\n\r\n".
  9. urlencode($query);
  10. fputs($fp, $request);
  11. $buffer = '';
  12. while (!feof($fp)) {
  13.   $buffer .= fgets($fp, 128);
  14. }
  15. fclose($fp);


la  ça ne fonctionne déjà pas :-(, je récupère bien la page d'authentification mais ça ne prend pas en compte les user et password que je lui envoi. (la validation du formulaire sur la page d'authentification se fait en javascript : <input type="submit" class="my_bouton" value="valider"/> et après un javascript fait le reste... je ne sais pas si mon soucis viens de la...
 
ça c'est déjà la première partie ou je bloque...
 
Etape 2 :Après, il faudrait que je puisse garder la ssession d'authentification pour accéder à la deuxième page du formulaire et lui balancer dans le même temps des données post et simuler une validation du formulaire (je précise que l'affichage des résultats se fait en ajax).
 
 
si quelqun peux m'aider ça serait avec grand plaisir...
Merci d'avance.

Reply

Marsh Posté le 01-08-2008 à 09:58:12   

Reply

Marsh Posté le 03-08-2008 à 17:02:01    

bonjour,
 
je me répond si ça peut aider quelqun : il faut rajouter dans les entetes, la session en cours, et la le tour est joué !!!

Reply

Marsh Posté le 03-08-2008 à 18:40:37    

moi sa m'interesse :) on peut voir un exemple?
 
Moi je suis bloqué car le site distant requiert un cookies et en php je vois pas de solution

Reply

Marsh Posté le 04-08-2008 à 10:32:14    

salut,
 
pour récupérer le nom et le contenu de la session,  tu l'as quand tu affices les entetes de la page ou tu t'es connecté. après une petite expression régulière du genre :  
 
if (ereg('Set-Cookie: NOMDELASESSION=([A-Za-z0-9_]+:[A-Za-z0-9_]+); Path=/; secure',$tavariablecontenantleresultathtml, $sortie)) {
  $lasession = $sortie[1];
 
 }
après tu rajoutes la ligne
"Cookie: NOMDELASESSION=$lasession;\r\n"
lorsque tu te connectes
 
bon après faut un peu l'adapter à ton resultat...
test!!!

Reply

Marsh Posté le 04-08-2008 à 10:34:01    

merci beaucoup! J'ai compris le principe je vais essayer.

Reply

Sujets relatifs:

Leave a Replay

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