Problème dans formulaire php mail

Moovance

Membre actif
1 Août 2005
167
9
Savoie
www.creacomdesign.com
Bonjour,

J'aurai besoin d'un éclaircissement pour d'autres types de champs dans un formulaire à savoir les boutons radio et les cases à cocher. J'ai un formulaire qui en comporte et lorsque je le teste, le choix des boutons radio n'apparaît pas dans l'email et si l'on coche les deux checkbox, seule le choix de la seconde apparaît.

Quelque chose doit m'échapper mais je ne trouve pas où !!

Le formulaire est visible ici

Et voici les champs du doc php qui ne fonctionnent pas :
Bloc de code:
ini_set("sendmail_from", "[email protected]"); 
if (isset($_POST['first_name']) && isset($_POST['message']) && isset($_POST['email'])) {
$gender = stripslashes($_POST['gender']);
$contact_by = stripslashes($_POST['contact_by']);

(...) 

$message = '<br /><strong>'.$gender.'</strong><br />';
$message .= 'Contact Preference : <strong>'.$contact_by.'</strong><br /><br />';
(...)

Merci par avance pour toute lumière que vous pourriez m'apporter sur le sujet.

Christèle
 
Salut,
Le code du formulaire me parait plus intéressant pour t'aider à résoudre ton problème.

Néanmoins, l'utilisation de checkbox suppose une écriture de la variable un peu particulière.
En effet le checkbox (ou plutôt le groupe de checkbox) peut récupérer plusieurs valeurs. C'est d'ailleurs ce qui le distingue du bouton radio.

Qui dit plusieurs valeurs, dit tableau et donc utilisation des crochets []

Bloc de code:
<input type="checkbox" name="MonChoix[]" value="1" />
<input type="checkbox" name="MonChoix[]" value="2" />
<input type="checkbox" name="MonChoix[]" value="3" />

on récupère donc un tableau ($MonChoix) auquel on accède via un foreach

Bloc de code:
foreach ($MonChoix as $choix)
		{
echo $choix . '<br>';
		}
;)
 
Merci FredMac, j'ai en effet trouvé des infos à ce sujet cet après-midi mais mes tests ne sont toujours pas concluants car la réponse apparaît alors en haut de ma page de confirmation de l'envoi du formulaire et non dans le corps de l'email... Cela viendrait-il de la fonction "echo"?

C'est à s'arracher les cheveux ce formulaire !!! :confused:
Je ne suis pas très douée en php faut dire. Et ces boutons sont en train de me déclancher une crise d'urticaire ;)
 
J'voulais pas embêter trop non plus :D

Alors voici le code actuel de ma page process.php

Bloc de code:
<?php
ini_set("sendmail_from", "[email protected]"); 
if (isset($_POST['first_name']) && isset($_POST['message']) && isset($_POST['email'])) {
        $tab_gender = $_POST['gender'];
		$first_name = stripslashes($_POST['first_name']);
        $last_name = stripslashes($_POST['last_name']);
        $telephone = stripslashes($_POST['telephone']);
        $email = stripslashes($_POST['email']);
		$tab_contact_by = $_POST['contact_by'];
		
        $msg = nl2br(htmlentities(stripslashes($_POST['message'])));
        
        $headers = 'Content-type: text/html' . "\r\n";
        $headers .= "From: Teresina Website <PHP>\n";
        
        $subject = 'Teresina Website Inquiry';
        
        $to = '[email protected]';
		
        $message = '<br /><strong>'.$gender.'</strong><br />';
        $message = '<br />First name : <strong>'.$first_name.'</strong><br />';
        $message .= 'Last name : <strong>'.$last_name.'</strong><br />';
		$message .= 'Telephone : <strong>'.$telephone.'</strong><br />';
        $message .= 'Email : <strong>'.$email.'</strong><br />';
		$message .= 'Contact Preference : <strong>'.$contact_by.'</strong><br /><br />';
        $message .= 'Message :<br /><div style="margin-left:10px; border-left:1px solid #000;">'.$msg.'</div><br /><br />';
        $message .= '----------<br />do not reply to this email';
        
        if (!mail($to, $subject, $message, $headers)) {
                echo 'Could not send mail, please try again : <a href="http://www.teresina.co.uk/contact.html" title="Back">back</a>.';
        }
        else {
                include('thanks.html');
        }       
}
else {
        header('Location: http://www.teresina.co.uk/contact.html');
}
?>

La page contact est toujours en ligne au même endroit[/B]

Ça fait deux jours que je me bas avec ça et à l'heure actuelle le choix fait avec les boutons radio n'apparait pas dans le corps de l'email et celui des checkbox fonctionne si l'on fait un seul choix. S'il y en a deux, c'est seulement le second qui apparait dans l'email.

Voili, j'espère que ce n'est pas quelque chose d'insurmontable ! Merci en tout cas de prendre le temps. :zen:
 
Merci je vais regarder tout ça et suivre tes modifs demain matin au calme et l'esprit frais car pour ce soir "j'ai la tête qui explose, j'voudrais seulement dormir..." :D et surtout une belle brochure à finir en urgence !

Encore merci, je te tiens au courant dans tous les cas. :)
 
Bonjour,

J'ai fait les modifs et regardé le document que tu me conseillais mais mon problème est toujours là. Comme lors des tests que j'avais déjà fait avec cette fonction "foreach" etc, la réponse de la case sélectionnée apparaît en haut de la page de confirmation de l'envoi du formulaire mais pas dans le corps de celui-ci (voir pièce jointe).

Ce que je trouve étonnant c'est que toutes les références que je trouve sur le web à propos des boutons radio et checkbox sont très sommaires, c'est pour cela que je me demande pourquoi je peux avoir autant de difficultés avec !

Mais je ne désespère pas de percer le mystère rapidement, j'espère ! :nailbiting:
 
il serait souhaitable que tu écrives cette boucle dans le if de la création du corps du mail, puisque c'est là que tu veux voire écrire ton résultat.

Bloc de code:
$message .= 'Contact Preference : <br />';
foreach ($tab_contact_by as $contact) {

[INDENT]$message .= '<strong>' . $contact . '</strong><br />';[/INDENT]}

...
 
J'ai suivi tes conseils mais rien n'y fait ! Je me demande bien ce qui peut clocher dans mon formulaire, parce que j'ai tout essayé jusque là, et c'est pas faute d'avoir fait des recherches !! J'ai donc décidé de mettre chaque checkbox de façon séparée ça résoud déjà un problème ;) Pour les boutons radio je vais voir ce que je peux faire... quelle gallère pour un simple formulaire !

Merci encore de ton aide en tout cas, et si tu as d'autres idées, n'hésite pas à me les souffler :D :up:

Christèle
 
Pour ce qui est des boutons radio, une simple [re]lecture te permettait de voir que tu renommais ta variable

Bloc de code:
$tab_gender = $_POST['gender'];

et que plus loin tu utilisais la variable

Bloc de code:
$message = '<br /><strong>'.$gender.'</strong><br />';


il te suffit donc de changer $gender en $tab_gender... ;)

Bloc de code:
$message = '<br /><strong>'. $tab_gender .'</strong><br />';

Enfin, retire les crochets sur le "name" des boutons radio. Il n'y a qu'une et une seule réponse possible pour les boutons radio ; l'utilisation d'un tableau (présence des crochets) n'est donc pas nécessaire.
 
Je voudrais pas être encore très négative mais j'ai essayé tout ça et... rien. Toujours pas une trace dans mon email :confused: Je te promets que je n'attends pas que la solution me tombe du ciel !!! Je cherche aussi de mon côté, mais tout ce que j'essaye ne donne aucun résultat ! :(
 
Ta page s'appelle contact.html et tu utilises du php. Cela devrait te mettre la puce à l'oreille...


Si tu ne connais pas les bases, ce qui n'est pas grave en soi, pourquoi ne pas faire appel à une personne qualifiée. Je suis sûr que ce forum regorge de personnes susceptible de te faire ce formulaire en deux coups de cuillère à pot (contre une rémunération symbolique).

Enfin, n'oublie pas que pour l'utilisation de php, un serveur apache est nécessaire ; qu'il soit sur ta machine (local) ou distant.
Y as-tu pensé pour l'hébergement du site de ton client ?
 
  • J’aime
Réactions: Moovance
Ta page s'appelle contact.html et tu utilises du php. Cela devrait te mettre la puce à l'oreille...


Si tu ne connais pas les bases, ce qui n'est pas grave en soi, pourquoi ne pas faire appel à une personne qualifiée. Je suis sûr que ce forum regorge de personnes susceptible de te faire ce formulaire en deux coups de cuillère à pot (contre une rémunération symbolique).

Enfin, n'oublie pas que pour l'utilisation de php, un serveur apache est nécessaire ; qu'il soit sur ta machine (local) ou distant.
Y as-tu pensé pour l'hébergement du site de ton client ?

Je vais en certainement faire appel en effet à quelqu'un de compétent afin de solutionner ce problème d'autant qu'il me fait perdre beaucoup de temps ! Mais je suis aussi très curieuse et désireuse de comprendre comment ça marche !

Pour ce qui est de l'hébergement, je m'en suis chargée car ma société propose ce service également. Merci de ton intérêt et de ton aide précieuse en tout cas.

Chris