Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[Résolu] Soumettre un formulaire mais en php


Messages recommandés

Posté(e) (modifié)

Bonjour,

 

j'ai un formulaire de base pour inscrire une personne sur la liste d'un auto-répondeur...

 

<form action="http://autorepondeur.com/subscribe.php" method="post">
<input type="hidden" name="id" value="24" />
<input type="hidden" name="groupe" value="58" />
<input type="hidden" name="redir" value="0" />
<input type="hidden" name="langue" value="1" />
<input type="hidden" name="liste" value="53452aba0df8a09d8b58c8b437e1e369" />
<input type="hidden" name="pays" value="0" />
<table><tr>
<td>E-mail</td><td><input type="text" name="email" size="32"></td></tr>
<tr><td>Prénom</td><td><input type="text" name="prenom" size="32"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Continuer"></td></tr>
</table></form>

J'aimerais 'poster' des informations en utilisant le php et j'ai le script suivant :

 

<?php
// Les données envoyées en POST sous forme d'url
$data = 'id='.urlencode("24").'&groupe='.urlencode("58").'&redir='.urlencode("0").'&langue='.urlencode("1").'&liste='.urlencode("53452aba0df8a09d8b58c8b437e1e369").'&pays='.urlencode("0").'&email='.urlencode("louis.janssens@pvh.be").'&prenom='.urlencode("Louis");

// monfichier.php3 est l'URL du fichier devant recevoir la requete POST  
$message  = "POST /subscribe.php HTTP/1.0\r\n";
$message .= "Content-type: application/x-www-form-urlencoded\r\n";
$message .= "Content-length: ".strlen( $data )."\r\n";
$message .= "\r\n";
$message .= $data."\r\n";

// monserveur correspond au serveur qui doit recevoir la requete
$fd = fsockopen( "autorepondeur.com", 80 );
fputs($fd,$message);
fclose($fd);
echo $data;
?>

Je n'ai pas de message d'erreur, tout semble bien fonctionner mais quand je vais voir sur mon auto-répondeur, cela ne marche pas, vous avez une idée de pourquoi ?

 

Patrick

Modifié par objectifweb

Posté(e)

pourquoi passes-tu par un socket TCP/IP? La configuration PHP de ton serveur autorise-t-il les fsockopen sur une url tierce?

if (!ini_get('allow_url_fopen')) {echo "KO";} else {echo "OK";}

 

le formulaire et le script devant réceptionner les valeurs POSTées ne sont pas sur le même serveur? si oui, pourquoi ne pas passer par les variables $_POST ?

Posté(e) (modifié)
pourquoi passes-tu par un socket TCP/IP? La configuration PHP de ton serveur autorise-t-il les fsockopen sur une url tierce?

if (!ini_get('allow_url_fopen')) {echo "KO";} else {echo "OK";}

 

le formulaire et le script devant réceptionner les valeurs POSTées ne sont pas sur le même serveur? si oui, pourquoi ne pas passer par les variables $_POST ?

 

Bonsoir,

 

Le problème : le visiteur s'inscrit sur le site, il doit donner son prénom, un pseudo, un mot de passe et son email. Avec ces informations, je crée un compte sur le site mais après je dois le mettre dans un auto-répondeur sur un autre serveur, je peux donc le rediriger vers une autre page où il doit introduire de nouveau son prénom et son email :-/

 

Pour éviter cela, je souhaitais dans le traitement de son inscription, simuler par du php l'inscription sur l'auto-répondeur, comme cela il s'inscrit une seule fois et les deux sites reçoivent les données du formulaire.

 

pour info, j'ai trouvé ce dont j'avais besoin et je le pose ici au cas où une autre personne chercherait la même chose

 

<?php
$ch = curl_init('http://autorepondeur.com/subscribe.php');

$data = 'id='.urlencode("24").'&groupe='.urlencode("58").'&redir='.urlencode("0").'&langue='.urlencode("1").'&liste='.urlencode("53452aba0df8a09d8b58c8b437e1e369").'&pays='.urlencode("0").'&email='.urlencode("louis.janssens@pvh.be").'&prenom='.urlencode("Louis").'&submit='.urlencode("OK"); 

curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
curl_exec ($ch);
curl_close ($ch);
?>

Patrick

Modifié par objectifweb
Posté(e)
Avec ces informations, je crée un compte sur le site mais après je dois le mettre dans un auto-répondeur sur un autre serveur, je peux donc le rediriger vers une autre page où il doit introduire de nouveau son prénom et son email :-/
Ca n'aurait pas été plus simple de récupérer les données postées, les enregistrer en base (ou autre chose, peu importe) et rediriger le navigateur vers l'autre URL de telle sorte que les données reçues par la première page (celle qui se contente de faire la redirection) soient aussi postées sur l'autre formulaire sur l'autre serveur, directement par l'utilisateur qui veut s'inscrire ?

 

Au passage, sais-tu exactement quel est le rôle de la fonction "urlencode" ? Parce que je crois bien qu'il est inutile de l'exécuter sur des données numériques... mais peut-être que c'est en prévision d'un envoi bête et méchant des données (non vérifiées) saisies par l'utilisateur ?

Posté(e)

Bonjour,

 

Ca n'aurait pas été plus simple de récupérer les données postées, les enregistrer en base (ou autre chose, peu importe) et rediriger le navigateur vers l'autre URL de telle sorte que les données reçues par la première page (celle qui se contente de faire la redirection) soient aussi postées sur l'autre formulaire sur l'autre serveur, directement par l'utilisateur qui veut s'inscrire ?

non parce que l'auto-répondeur est situé sur un autre serveur (que je ne gère pas) et je ne demande que le prénom et l'émail, je ne gère pas la redirection qui survient après l'inscription, je peux donner un lien unique mais je ne peux ajouter de variables dans ce lien qui amène vers le formulaire 2 pour s'inscrire sur le site. Ici je fais l'inverse, le membre s'inscrit sur le site une seule fois et automatiquement il est ajouté dans l'auto-répondeur

 

Au passage, sais-tu exactement quel est le rôle de la fonction "urlencode" ? Parce que je crois bien qu'il est inutile de l'exécuter sur des données numériques... mais peut-être que c'est en prévision d'un envoi bête et méchant des données (non vérifiées) saisies par l'utilisateur ?

Je connais effectivement sa fonction et je l'ai laissé au cas où, je me suis dis que les enlever où cela n'est pas nécessaire ne me fait rien gagner en temps, ce qui ne me gêne pas, je le laisse en vie :P

 

Au passage, je signale que malgré que j'ai bien coché de recevoir les notifications de ce forum, je ne reçois jamais rien même pas en spam

 

Patrick

Posté(e)
l'auto-répondeur est situé sur un autre serveur (que je ne gère pas)
Forcément, ça rend les choses plus compliquées. En particulier faire remonter à l'utilisateur les éventuelles erreurs survenant sur l'autre serveur :-/

 

Je connais effectivement sa fonction et je l'ai laissé au cas où, je me suis dis que les enlever où cela n'est pas nécessaire ne me fait rien gagner en temps, ce qui ne me gêne pas, je le laisse en vie ;)
Soit.

 

Au passage, je signale que malgré que j'ai bien coché de recevoir les notifications de ce forum, je ne reçois jamais rien même pas en spam
Oui, le serveur a quelques difficultés avec les envois de mail, en ce moment.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...