|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() |
Bonjour a tous,
Je viens poster ici car je n'ai pas trouvé solution a mon problème et si le titre peut paraitre compliqué, en détail, c'est plus évident. Je travaille en local avec wamp server. Je suis en train de développer un petit parser html avec ce qui me va bien dedans. Jusque là tout marche bien. Cependant, pour certains site, nécessitant une connexion, le parsage reste celui de la page d'origine sans être logué. Je m'explique, j'ai une petite page php contenant ce bout de code : Code :
Ensuite j'envoie ma donnée post. Enfin je re parse mais le résultat est le même : BB J'ai bien vérifié, les données POST sont envoyées et reçu. Voici ma fonction connecter : Code :
$this->Parser($this->url); stocke le contenu de la page dans un variable text (on le refait car la page est cencée avoir changé). $this->rechercheBalise('2', $this->text, 'p'); fonction permettant de récupérer toutes les balises <p> dans le champs text. J'ai bien OK qui s'affiche mais le text BB est aussi affiché. Je ne sais pas si cela vient du fait que je ne sois pas sur localhost mais si je change mon ip par localhost, la page charge sans s'arrêter. J'ai trouvé d'autres pistes notamment avec la class HttpRequest de php mais je preferais savoir avant si quelqu'un avait une idée. Merci DaX |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
Salut,
Je pense que ton problème vient de la méthode rechercheBalise, il n'y à pas son corps, mais je ne comprend pas vraiment comment tu récupères le contenu de la page à l'intérieur de cette méthode ![]() En effet tu devrais à un moment donné faire un fopen($fd); pour lire la réponse, hors cette ressource ($fd), n'est pas passée en paramètre de rechercheBalise. A moins que tu ne le fasses dans Parser ? Auquel cas tu n'as pas correctement assimilé le fonctionnement de ces méthodes. Car la réponse de ta requête n'est disponible qu'en lisant le flux enregistré dans $fd (après le fputs hein), et non pas en faisant une lecture sur l'url avec un nouveau pointeur. bye |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
ok je comprends mieux pourquoi cela ne marche pas !
rechercheBalise est "independante" car elle va utiliser le champs text de la class. Il me faut utiliser l'id de resource retourné par $fd mais je ne sais pas comment l'exploiter. Il ne me reste plus qu'a le lire le fichier et stocker le contenu dans la variable text, et normalement, après, j'ai tout ! Seulement lorsque j'utilise fgets() ou fgetss(), la page se met a charger à l'infini. |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
Code :
Du coup je pense que tu moulinais parce que le serveur distant ne recevait pas demande cohérente et te faisait patienter jusqu'à réception, ce que ta requête ne pouvait faire. Donc sa chargeait. Et puis sa mourrait lamentablement dans un fatal error time exceeded. bye |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
Merci beaucoup !
Je ne pense pas que je l'aurais trouvée tout seul !! Juste une dernière chose maintenant Y a t'il un moyen de les conserver et ainsi grâce à une unique connexion, on a accès a tout ce que l'on veut ou doit on se reconnecter pour chaque page ? Merci |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
Hm, je pense qu'il faut que tu envoies le session id. Soit par cookies, soit par l'url, cela dépend de ta configuration. cf session_name et session_id
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Le retour de fgets contient le cookie contenant l'id de session donc j'en conclue que la session a bien été créée !
Grace a cela je fais la lecture du cookie que je stocke dans mon objet. Cependant sur mon site, lorsqu'un membre a le droit ou pas d'aller je teste si la session existe car un fois connecté, la plus part des variables de session se créent. Je ne passe ni par l'url ni par des cookies pour tester la session mais en faisant : if(isset($_SESSION['id'])) ... peut être en envoyant des requêtes post mais j'en doute. Je ne vois pas comment faire a ce niveau. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
Muep, mais quand tu postes, tu n'envoies pas l'id de session, donc php perd ta session, même si le sessid est le même au retour.
Essaie de le passer dans l'url pour faire simple. Du moins c'est ce que j'imagines. |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
Je n'arrive pas a voir comment tu veux que je le passe en paramètre :S
'http://monsite.fr?session_id='.$sessionId; En fait sur mon site, l'identification renvoie sur la page index.php et la page messagerie.php par exemple qui n'a le contenu accessible que si il existe une session. Je viens de faire des tests et que je sois connecté ou pas, le cookie PHPSESSID se crée tout seul. mais si je le supprime une fois connecté, je me retrouve déconnecté. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com