[PHP+SHELL]

[PHP+SHELL] - PHP - Programmation

Marsh Posté le 25-09-2008 à 12:05:30    

Bonjour,
 
J'ai un script qui me permet de remplir automatiquement un formulaire donné. J'ai une base de données dans laquelle je récupère ce qui va remplir le formulaire. C'est notre pote php qui s'en occupe et qui crée la chaine "&maValeur=saValeur...." que je vais envoyer enPOST.
 
Il laisse ensuite la besogne d'envoyer tout ça a un script shell utilisant wget. ça marche nickel quand j'envoie sur un webservice. Mais un de mes autres clients n'a pas de webservice et utilise un super systeme de tracking.
 
Celui-ci m'a envoyé un lien taggué que je visite avec un premier wget. je sauve le cookie et je fais un keep session cookie aussi. Je refais ensuite un wget avec mes données en POST sur l'url du formulaire en chargeant le cookie créé précédemment.
 
Les formulaires sont bien acceptés mais le gars est incapable de remontrer jusqu'a moi avec son tag. J'ai envoyé une vingtaine de formulaire et seulement 3 ont pu etre remontés correctement jusqu'a moi alors qu'ils sont tous acceptés (je reçois la confirmation de l'enregistrement du fomulaire).
 
Pour cela j'aimerai savoir : Sachant que je ne passe pas par un navigateur ou sont stockés les cookies du keep session cookie (script lancé sur un serveur distant tournant sur Ubuntu) ?
 
ou alors le tag met trop de temps à remonter et mon script va trop vite (j'ai essayé en mettant un délai entre chaque envoi ça n'a rien changé) ?
 
Cette histoire traine depuis trop longtemps et je ne comprend pas pourquoi.
Celui qui trouve la solution a mon probleme aura le droit a un bisou !  
 
voici mon pote .sh :
 

Citation :


OUTPUT="yop"
FILE="dossiers.txt"
echo''>mail.txt
echo 'Donnees transmises avec le formulaire :'>>mail.txt
/bin/cat $FILE | while read LINE
 
do
 /usr/bin/wget  --save-cookies=cookieTest.txt  --keep-session-cookies -O temp.html  $AFFILIATION
 sleep 10
 rm -f temp.html
 /usr/bin/wget -nv  $SITE --load-cookies cookieTest.txt -O $OUTPUT'.html' --post-data $LINE
 echo $LINE'\n'>>mail.txt
 echo '\n'>>mail.txt
        sleep 10
 
done


 
dans "dossiers.txt" sont stockées mes chaines de caractère que je ferai passer en POST. $MAIL est juste la pour voir quelles données j'ai envoyé.
$AFFILIATION est l'url du site en tracké
$SITE est l'url du fomulaire
l'url $AFFILIATION redirige vers l'url $SITE.
 
 
Merci de votre aide.

Reply

Marsh Posté le 25-09-2008 à 12:05:30   

Reply

Marsh Posté le 25-09-2008 à 13:11:28    

[:sovxx]
Je voudrais bien t'aider... Mais c'est pas très clair tout ça et puis comme ça, sans vraiment avoir de données techniques (du code par exemple) je vois pas bien comment on pourrait deviner d'où vient ton problème.
 
Sinon est ce que ça fonctionne bien si tu utilise un navigateur plus traditionnel? Genre FireFox par exemple. Si oui, as tu essayé de repérer quelles sont les différences avec wget? Si tu as deux comportement différent, doit forcément y en avoir?


Message édité par dwogsi le 25-09-2008 à 13:11:45

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 25-09-2008 à 14:43:46    

ok, alors à ce moment la quelles sont les différences entre la fonction wget et un navigateur classique ? quand on rentre un formulaire à la main en passant par l'url trackée, tout fonctionne correctement, l'inscription du formulaire + le tag. mais en passant par le script ça marche pas. le coin ou ça doit poser probleme est dans le script shell que j'ai donné en commentaire plus haut. Sachant qu'il y a des moments ou ça marche (3 sur une quantité enorme d'essais)... quand je contacte les gars responsables du tracking (qui sont une societe differente de la societe du formulaire -_-" ) ils me disent que les formulaires que je remplis ( "200 ok" de la part de l'hébergeur du formulaire avec la page de confirmation en retour, c'est dans la boite) ne sont pas attribués à mon tag...

Reply

Marsh Posté le 25-09-2008 à 15:21:47    

Si c'est un problème de script shell alors ta question doit être posé dans la catégorie "Shell/Batch".
Mais vu que t'as posé la question dans la catégorie PHP, je vais te poser une question con : tu sais que php dispose de tout ce qu'il faut pour contacter des serveurs distants en fournissant des entêtes (telles que les cookies) ? D'ailleurs il y a même des gens qui ont fait des classes en PHP disponibles sur le net et qui permettent de simplifier tout ça en ayant juste le contenu et l'adresse à fournir, ces scripts s'occupant de gérer tout ce qui doit être persistant (cookie entre autre)
 
En bref, sauf réglage du serveur qui empêche les appels distant, je ne vois vraiment pas pourquoi t'es aller te compliquer la vie comme ça (mais si l'administrateur du serveur a bloqué ça, je ne vois pas pourquoi il aurait laissé wget disponible).

Reply

Marsh Posté le 07-10-2008 à 01:00:03    

Peux-tu préciser quelles sont les noms de ces classes "magiques" ou modules php omega2 ?


Message édité par sputnick le 07-10-2008 à 01:00:18
Reply

Sujets relatifs:

Leave a Replay

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