|
|
|
|
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://ww7.aitsafe.com/..."); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($curl); curl_close($curl); print($page);
Normalement si le script de vérification de disponibilité refait à l'identique le POST, il n'y a pas de raison que aitsafe voie la différence (lui il reçoit une liste de variables, c'est tout).
C'est dans chkqte.php qu'il doit y avoir un problème : le script ne reproduit peut-être pas à l'identique l'ensemble des variables POST qu'il reçoit... |
oui oui...
j'ai fais des tests et aitsafe crée un cookie sur l'ordinateur du client pour savoir qui est qui (sessions). Mais moi, puisque c'est le chkqte.php qui fait le POST, c'est comme si cest toujoiurs le serveur mamankangourou.com qui fait le POST et donc un seul panier pour tous le monde. mais en cherchant je crois que j'ai trouvé... avec curl c'est possible de simuler le passage d'un cookie: envoyer un cookie avec le POST et recevoir le cookie. ensuite je pourrais juste le mettre sur le client... je vais essayer de faire ça demain... |
Fait un <input type="hidden"> contenant l'id de l'internaute sur ta 1ère form et que tu repassera avec CURL.
Comme ça, tu peux identifier le visiteur qui a fait la requête dans le script de traitement. |
Salut,
Bon, je sais pas si tu as toujours ce problème, mais voici la solution que j'utilise : en fait il faut rajouter une option à CURL pour lui dire de passer l'identifiant de session de l'internaute en tant que cookie : session_start(); // ICI on active les variables de session (si ce n'est pas déjà fait) $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://ww7.aitsafe.com/..."); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_COOKIE, session_name() . '=' . session_id()); // ICI on rajoute le cookie session_id $page = curl_exec($curl); curl_close($curl); print($page); Cela fonctionnera si le serveur de destination accepte les identifiants de session par cookie (cde qui est en principe le cas par défaut). Sinon, si le serveur est configuré pour accepter les identifiants de session par URL, il faut rajouter le champs mais dans l'URL : session_start(); // ICI on active les variables de session (si ce n'est pas déjà fait) $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://ww7.aitsafe.com/...?".session_name() . '=' . session_id()); // ICI on passe le session_id par URL curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($curl); curl_close($curl); print($page); Voilà, cela devrait résoudre ton problème. Il y a juste un problème qui peut se poser si jamais l'url du serveur de destination est le serveur lui-même (une requête HTTP "interne") : dans ce cas, il faut savoir que le fichier de session est par défaut ouvert en mode exclusif, ce qui fait que tu auras un joli timeout à première vue inexplicable... Si cela arrive, il te suffit de rajouter la commande suivante juste avant le curl_exec() : session_write_close(); Ceci à pour effet de sauvegarder et fermer le fichier de session courant (malheureusement, cela rend la session inutilisable pour la suite du script...), donc lorsque CURL fera sa requête HTTP, il pourra "se faire passer" pour la même session sans problème. Sinon, j'ai une question, vous pourrez peut-être m'aider : est-il possible d'initialiser CURL et de le détruire (close) une seule fois tout en faisant plusieurs exec au milieu ? Merci, @+ |
Re,
Bon, en fait je viens de tester plusieurs curl_exec() au milieu d'un curl_init() ... curl_close() et çà fonctionne...Sur l'action j'ai un peu trollé... @+ |
| 03/12 23h39 | Télécharger le contenu d'une page web distante | Langage C |
| 31/07 23h21 | [PHP] Headers already sent by..... | PHP |
| 17/04 20h50 | Page, doc et tutoriaux officiels | PHP |
| 20/04 18h59 | [PHP] Fonction mail() | PHP |
| 21/04 11h38 | Liens utiles | PHP |
| 24/06 14h59 | [PHP] fermer session à partir d'une image | 17 |
| 12/02 11h22 | [php] Les sessions ne tiennent pas | 4 |
| 12/12 16h58 | [Php] Variable Session, connexion par mdp | 8 |
| 02/05 10h31 | [php] la session ne contient rien | 3 |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | Session Manager - Session Manager est un outil permettant de sauver et de restaurer les états de toutes les fenêtres sous Firefox. Cette... | Catégorie: Extensions Firefox Licence: Freeware/gratuit |
![]() | MSN Polygamy - Msn/Windows Live Messenger Polygamy permet d'ouvrir plusieurs instances (copies) de Windows Live Messenger avec... | Catégorie: Messagerie instantanée Licence: Freeware/gratuit |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | Jam Sessions | Catégorie: Jeu vidéo Nintendo DS | 18.77 € Amazon.fr |
![]() | Grind Session | Catégorie: Jeu Playstation |