Formulaire de contact

Petit nouveau ! | 6 Messages

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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 ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

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).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 6 Messages

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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) :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

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 :/

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...