Utilisation de curl pour soumettre/récupérer les formulaires de résultats
J'ai besoin d'aide en essayant d'utiliser curl pour publier des données à une page et de récupérer les résultats une fois que le formulaire a été soumis.
J'ai créé un formulaire simple:
<form name="test" method="post" action="form.php">
<input type="text" name="name" size="40" />
<input type="text" name="comment" size="40" />
<input type="submit" value="submit" />
</form>
En plus, j'ai du code php pour gérer ce formulaire dans la même page. Il n'est de renvoyer les valeurs d'un formulaire.
La boucle que j'ai utilisé est: est-ce
$h = curl_init();
curl_setopt($h, CURLOPT_URL, "path/to/form.php");
curl_setopt($h, CURLOPT_POST, true);
curl_setopt($h, CURLOPT_POSTFIELDS, array(
'name' => 'yes',
'comment' => 'no'
));
curl_setopt($h, CURLOPT_HEADER, false);
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($h);
echo $result;
Lorsque je lance la page avec le curl dans le code, j'obtiens le form.php contenu de la page, mais ce n'est pas le montrer
les variables PHP doit avoir de l'écho avais lorsque le formulaire est soumis.
apprécierais toute aide à ce sujet.
Grâce.
peut-on voir le PHP qui traite le formulaire submition? le problème est peut-être là.
aussi, avez-vous vérifié que le fait de soumettre le formulaire manuellement produit le résultat désiré?
La soumission du formulaire manuellement ne produire le bon de sortie. Le PHP qui traite le formulaire est: if(isset($_POST['soumis'])){echo $_POST[nom] ..... etc. et c'est tout
aussi, avez-vous vérifié que le fait de soumettre le formulaire manuellement produit le résultat désiré?
La soumission du formulaire manuellement ne produire le bon de sortie. Le PHP qui traite le formulaire est: if(isset($_POST['soumis'])){echo $_POST[nom] ..... etc. et c'est tout
OriginalL'auteur Jason | 2011-01-03
Vous devez vous connecter pour publier un commentaire.
AHHHH après votre commentaire, le problème est clair.
vous avez besoin d'inclure un plus variable POST dans votre tableau.
le bouton soumettre également retourne une valeur post si vous cliquez dessus, vous vérifiez dans votre formulaire de traitement PHP.
dans votre curl code mais vous avez laissé de côté le "soumis" post variable.
si c'est ce que vous cherchez, veuillez cochez la case à côté de cette réponse. merci!
une chose est sûre, aucun problème!
OriginalL'auteur dqhendricks
De lire les deux autres réponses, et le commentaire par l'OP, j'ai quelques idées.
Plus précisément, l'OP Commentaire:
Dans des conditions standard, votre forme de base, comme indiqué dans la Question d'Origine, génèrent un $_POST tableau comme le suivant:
Votre commentaire suggère que certains aspects de votre programme de traitement de formulaire est à la recherche d'un $_POST élément appelé "soumis".
1) La forme de base, comme indiqué dans la question, renverra toujours FALSE pour un chèque de $_POST['soumis'], et, comme tel, va déclencher l'AUTRE action (si présent) pour que conditionnelle.
2) Votre CURL Action n'est pas réglé sur "soumettre" ou "soumis", et, de nouveau, renverra toujours FALSE pour le conditionnel.
Donc je suggère que vous:
1) Vérifiez votre programme de traitement de Formulaire, et de voir quels sont les champs essentiels, quels sont leur nom et leur contenu doit être.
2) Vérifiez votre Forme de Base, et de s'assurer qu'il a les champs appropriés.
3) Vérifiez vos CURL Action, et s'assurer que les détails de chaque champ qui est nécessaire. (Facile à vérifier serait d'insérer
print_r( $_POST );die();
en haut de votre programme de traitement de Formulaire et soumettre le formulaire de base. Cela va vous montrer exactement ce que le formulaire d'envoi, de sorte que vous pouvez le recréer en CURL.OriginalL'auteur Luke Stevenson