Formulaire de contact

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire de contact

Re: Formulaire de contact

par Ryle » 13 févr. 2012, 21:46

Tu as une apostrophe en trop
value=''" . $id . "'
Et il faut également adapter le code php qui te permet de récupérer les id de cases qui ont été cochées :)

Re: Formulaire de contact

par kevin76110 » 13 févr. 2012, 00:57

Hum non, toujours la même erreur.
Avec ceci :
print("<tr><td><input ".$ct." type='checkbox' name='f_10[]' value=''" . $id . "' border='0'>
J'ai été obligé de commenter ( du moins temporairement) error_reporting(E_ALL | E_STRICT); sans quoi cela était un peu illisible avec les erreurs :/

Re: Formulaire de contact

par Ryle » 13 févr. 2012, 00:16

Si pour tes checkbox tu modifies ceci : name='f_10[$id]' value='1' en name='f_10[]' value='" . $id . "', tu obtiendras en php un tableau $_POST['f_10'] si au moins une des cases à été cochée. Si aucune case ne l'a été cette variable ne sera pas définie (isSet() renverra false).
Tu peux ensuite facilement savoir quelles cases ont été cochée en parcourant les valeurs de ce tableau (avec un foreach par exemple) :)

Re: Formulaire de contact

par kevin76110 » 13 févr. 2012, 00:01

Je viens de placer le script en haut de formulaire.
Donc, si je comprends bien, il y a une erreur ici :

Code : Tout sélectionner

<? for($id=0;$id<count($list['f_9']);$id++){ if($id==$f_9){$ct="checked";} print("<tr><td><input ".$ct." type='radio' name='f_9' value=".$id." border='0'></td><td><span class='txtform'>".$list[f_9][$id]."</span></td></tr>"); unset($ct); }?>
et là :

Code : Tout sélectionner

<? for($id=0;$id<count($list['f_10']);$id++){ if($f_10[$id]==1){$ct="checked";} print("<tr><td><input ".$ct." type='checkbox' name='f_10[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_10][$id]."</span></td></tr>"); unset($ct); }?>
Dans le premier code, l'affichage des radios, le second code, idem mais pour les checkbox.
Mais je ne suis pas assez doué pour corrigé l'erreur.

Re: Formulaire de contact

par moogli » 12 févr. 2012, 23:43

salut,

je te conseil d'ajouter : error_reporting(E_ALL | E_STRICT); en 1èrer ligne de ton script.

et de t'inspirer de ce tuto pour la validatin des formulaires.

le nom des checkbox devrait être un tableau (ex : name="check[]") afin d'avoir une tableau des valeurs cochées et en value il faut mettre une pertinente (une clef primaire d'une table par exemple).

dernière chose les tags php c'est <?php et non <? (la seconde possibilitée n'étant pas la configuration par défaut de php il est possible que cela te pose problème lors d'une prochaine mise a jour, cas tres fréquent).

@+

Re: Formulaire de contact

par kevin76110 » 12 févr. 2012, 22:52

Lorsque tu remplis le formulaire, cases et radio cochées, le formulaire me renvoie toujours une erreur :
ERREUR, votre message n'a pas été transmis
Le champ « Où sont situées vos rondeurs ? » requiert au moins une sélection.
Or, une (ou plusieurs) case est bien cochée.

Re: Formulaire de contact

par Ryle » 12 févr. 2012, 22:47

Et euh... qu'est ce qui ne fonctionne pas ? (ça sera plus facile de trouver pourquoi si on sait quoi chercher ;))

Formulaire de contact

par kevin76110 » 12 févr. 2012, 22:13

Bonjour,

J'ai quelques petits soucis lors de la création d'un formulaire de contact ( je suis débutant en php).

J'ai un formulaire de contact ( que vous pouvez tester ici : http://toujoursutile.fr/test/ et le source est ici : http://toujoursutile.fr/test/index.txt ).
Je ne comprends pas trop pourquoi il ne fonctionne pas ( le soucis vient des checkbox, mais je ne vois pas où).

A terme, le formulaire doit:
- récupérer les infos du formulaire.
- les envoyer à une adresse mail.
- les stocker dans une base de données.
- en fonction de la réponse aux radios, l'internaute doit être redirigé vers une page spécifique ( page1 s'il coche la première boîte, page2 si c'est la seconde etc.).

Pour l'instant, je me concentre surtout sur les 2 premiers points (récupérer les infos par un post, et les envoyer à une adresse). mais déjà, cela ne fonctionne pas.
Quelqu'un voit où est l'erreur ?
Merci d'avance.

K.