_VIEWSTATE

_VIEWSTATE - PHP - Programmation

Marsh Posté le 09-05-2005 à 17:45:38    

Bonjour,
 
Mon souci du jour est le suivant :
 
J’essai d’ouvrir la page d’un site en ASP, http://www.wegolo.be
Le problème est que ce site utilise un _VIEWSTATE.
Hors, lorsque je poste le formulaire que j’ai reproduit en en php, dans la page de réponse, je ne récupère pas la bonne valeur de _VIEWSTATE, j’ai une valeur différente de celle que je devrais avoir et en plus elle semble troqué car elle se termine par un /X.
 
Quelqu’un-t-il eut le problème ?
Y a t-il un moyen de généré directement depuis mon code php ce VIEWSTATE ?
 
Merci pour vos points de vu nombreux qui sûrement pourront m’aider.

Reply

Marsh Posté le 09-05-2005 à 17:45:38   

Reply

Marsh Posté le 09-05-2005 à 17:52:56    

Et si tu nous donnais un morceau de ton script ?  Ca nous aiderait à t'aider...
 
EDIT : As-tu bien envoyé ton cookies avec ton userid ?  
 
Tu peux également aller directement sur htp://ww.wegolo.be, récupérer ton viewstate et ensuite emplir le formulaire avec cURL par exemple.  
 
Sinon éspères pas générer ton viestate avec php car à la base c'est le moteur asp qui le génère et je pense pas que l'on va te filer l'algo...


Message édité par yoyo354 le 09-05-2005 à 18:13:47

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 10-05-2005 à 00:36:31    

Bien sur, voici plus de détail…
 
En fait, j’utilise pour effectuer mes POST (ou GET), une classe proposé par Tiago Serafim dans  http://www.phpclasses.org/
http://www.phpclasses.org/browse/package/1119.html
Voici la partie de mon code
 
<?php
require('cHTTP.php');
//////////////////////////////// LANCEMENT DE LA REQUETE DE DISPO ////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
 $site="be";// choix du site
 $FrLang="flag=3"; //choix de la langue
 
 $http = new cHTTP();
 $http->clearFields();
 
 $url = "http://www.wegolo.$site";
 
 $http->postPage($url);
 $Response = $http->getContent();
 
 $PosParam1=strpos($Response,"(" );
 $PosParam2=strpos($Response," )" );
 $Parametre1=substr($Response,$PosParam1+1,($PosParam2-$PosParam1)-1);// Parametre ID a passer dans chaque url
 
 $http = new cHTTP();
 $http->clearFields();
   
 $url = "http://www.wegolo.$site/($Parametre1)/Step0.aspx?$FrLang";
 $http->postPage($url);
 $Response = $http->getContent();  
 
 
 $PosParam1=strpos($Response,"VIEWSTATE\" value=\"" );
 $PosParam2=strpos($Response,"\" />" );
 $ViewState=substr($Response,$PosParam1+18,($PosParam2-$PosParam1)-18);//
 
 $http->addField("__VIEWSTATE",$ViewState);  
 $http->addField("usrLang","3" );
 $http->addField("txDestination","A/CIT/10413/166" );  //BARCELONA
 $http->addField("txDeparture","A/CIT/10413/10" ); //BRUXELS
 $http->addField("cbDeparture","A/CIT/10413/10" ); //BRUXELS
 $http->addField("cb_destination","A/CIT/10413/166" );//BARCELONA
 $http->addField("cb_day","15" );
 $http->addField("cb_month_year","05.2005" );
 $http->addField("cb_day_return","25" );
 $http->addField("cb_month_year_return","05.2005" );
 $http->addField("cb_person","1" );
 $http->addField("cb_child","0" );
 $http->addField("cb_baby","0" );
 $http->addField("pbSearch.x","30" );
 $http->addField("pbSearch.y","15" );
 
 $url = "http://www.wegolo.$site/($Parametre1)/Step0.aspx?$FrLang";
 $http->postPage($url);
 $Response = $http->getContent(); /// Response doit contenir la page d'attente
 
 $PosParam1=strpos($Response,"VIEWSTATE\" value=\"" );
 $PosParam2=strpos($Response,"\" />" );
 $ViewState=substr($Response,$PosParam1+18,($PosParam2-$PosParam1)-18);// Je récupere le WiewState de la page d'attente
 
 $PosParam1=strpos($Response,"action=\"" );
 $PosParam2=strpos($Response,"id=\"Step0_1\"" );  
 $Parametre3= substr($Response,$PosParam1+8,($PosParam2-$PosParam1)-8);  
 
 $http->addField("__VIEWSTATE",$ViewState);  
 $url = "http://www.wegolo.$site/($Parametre1)/$Parametre3"; //<==> équivaut au JS reload ??
 $http->getPage($url);
 $Response = $http->getContent();
 
 echo $Response; // Doit contenir la page de tarifs
?>
 
Le problème c’est que dans la page d’attente, je ne récupère pas le bon viewstate en retour ….

Reply

Sujets relatifs:

Leave a Replay

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