Vous n'êtes pas identifié(e).
Pages :: 1
Hello tous!
Je suis nouveau sur le forum, et aussi en php, aussi j'implore votre clémence si ma question est "simple" ou mal formulée... amen!
Tant bien que mal, je tente de traiter un formulaire en html via une page php.
Tout fonctionnait nickel, jusqu'à ce que j'essaye d'ajouter le traitement d'une case à cocher. Quand je valide mon formulaire, j'ai l'erreur suivante:
Parse error: syntax error, unexpected T_IF in /home/www/4fbeef6536735cb3f1bc571d92d40de8/web/form/traitement_formulaire2.php on line 67
voici mes lignes n°67 à 70 de mon fichier php de traitement:
Ma case à cocher s'appelant "showroom".
Ci-dessous le code complet:
<body>
<?php
// destinataire du mail
$destinataire = 'xxx@xxx.com';
// copie à l'émetteur
$copie = 'oui'; // 'oui' ou 'non'
// Messages de confirmation du mail
$message_envoye = 'ok_message.htm';
$message_non_envoye = 'notok_message.htm';
$message_erreur_formulaire = "Attention, pour continuer, vous devez <a href=\"contact.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = 'nok_champs_form.htm';
// test d'envoi du formulaire
if (!isset($_POST['envoi']))
{
// si echec
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* nettoyer et enregistrer le message
*/
function Rec($text)
{
$text = trim($text); // supprime les espaces blancs en début et en fin de texte
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};
/*
* vérif email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$showroom = if (isset($_POST['showroom'])) {print $_POST['showroom']; }
else {
echo "Aucun choix sélectionné";
}
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : 'message depuis le formulaire du site';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$copie = (isset($_POST['copie'])) ? Rec($_POST['copie']) : '';
// vérification des variables et de l'email ...
$email = (IsEmail($email)) ? $email : '';
if (($nom != '') && ($email != '')&& ($message != ''))
{
// envoi du mail après constitution
$headers = "Content-Type: text/html; charset=\"UTF-8\"\n".'From: '.$nom.' <'.$email.'>';
$message = str_replace('\r\n','<br>',$message);
$objet = str_replace("'","'",$objet);
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};
//constitution du corps du mail qui sera envoyé
$message = 'Nom : '.$nom."<br>"
.'email : '.$email."<br>"
.'showroom : '.$showroom."<br>"
.'Message : '.$message;
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
header('Location: ar_message.htm');
}
else
{
header('Location: nok_message.htm');
};
}
else
{
// une des 3 variables (ou plus) est vide ...
header ('Location: nok_champs_form.htm');
};
};
// fin du if (!isset($_POST['envoi']))
?>
</body>
</html>
C'est sûrement évident pour la majorité d'entre vous, mais pas du tout pour moi!
Une suggestion?
Merci!
colinus
Dernière modification par colinus (21-03-2011 13:28:02)
Hors ligne
if (isset($_POST['showroom'])) {
$showroom = $_POST['showroom'];
}
else {
echo "Aucun choix sélectionné";
}
a++
Hors ligne
Merci bien Pierrot,
c'est pas encore ça, ce coup ci plus d'erreur à l'envoi, par contre, avant l'envoi que je coche ou pas la case a cocher "showroom" ne change rien dans le contenu que je reçois...
Une idée?
Mon code actuel:
// vérification des variables et de l'email ...
Merci!
Hors ligne
Saluton,
Pour garder la même logique
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Yep, merci Kris!
Plus d'erreur non plus, le formulaire est traité puis envoyé.
Mais c'est comme avant, quel que soit le statut de la checkbox, rien ne change dans ce qui est envoyé. Je reçois de tte manière le "aucun choix sélectionné", qu'elle soit cochée ou pas.
J'aimerais que:
- si la checkbox est cochée, je reçoive une valeur (p.ex. oui) dans le contenu du formulaire
- si elle est pas cochée, j'en reçoive une autre (p.ex. non)
Par conséquent, je vois pas comment se passer du if, non? Ou alors mes maigres connaissances sont déjà moisies?
Une fois ceci résolu, je m'attaquerai aux 4 radio bouton et au champ de texte optionel... argl!
Merci les gars!
Dernière modification par colinus (21-03-2011 16:06:16)
Hors ligne
Saluton,
Il faudrait voir le code HTML du formulaire qui contient la checkbox.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Saluton,
Il faudrait voir le code HTML du formulaire qui contient la checkbox.
Yes, voici donc le code html:
J'avoue honteusement que je m'embrouille entre le "input name", "id" et "value"....
Si besoin le code complet du formulaire html:
<body>
<form action="traitement_formulaire2.php" method="post" name="contact" id="contact">
<p align="center" class="Style15" style="margin-top:5px;">formulaire bidon pour test</p>
<table width="85%" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" class="typo_article">
<div align="left">
<input name="nom" type="text" class="typo_form" id="nom" tabindex="1" value="votre nom" size="80" maxlength="40"/>
<input name="email" type="text" class="typo_form" id="email" tabindex="4" value="votre adresse email" size="80"/>
<textarea name="message" cols="80" rows="9" class="typo_form" id="message" tabindex="6">votre message</textarea>
</div></td>
</tr>
<tr>
<td width="192" valign="top" class="typo_article">recevoir une copie?</td>
<td width="73"><span class="typo_article">
<input name="copie" type="radio" id="copie_2" value="oui" checked="checked" />
Oui</span></td>
<td width="280"><span class="typo_article">
<input type="radio" name="copie" value="non" id="copie_1" />
Non</span></td>
</tr>
<tr>
<td colspan="3" valign="top" class="typo_article">Comment avez-vous connu notre entreprise ?</td>
</tr>
<tr>
<td colspan="3" valign="top" class="typo_article"><table width="100%" height="89" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="25" align="left" valign="top"><label class="typo_article">
<input type="radio" name="radio" id="site web" value="site web" />
</label></td>
<td width="190" align="left" valign="top"><label class="typo_article">depuis un site web</label></td>
<td width="25" align="left" valign="top"><label>
<input type="radio" name="radio" id="moteur recherche" value="moteur recherche" />
</label></td>
<td width="274" align="left" valign="top"><label>par un moteur de recherche</label></td>
</tr>
<tr>
<td align="left" valign="top"><input type="radio" name="radio" id="fontaine" value="fontaine" /></td>
<td align="left" valign="top">par une fontaine <span class="exergue_article">ecopotable</span></td>
<td align="left" valign="top"><input type="radio" name="radio" id="autre" value="autre" /></td>
<td align="left" valign="top">autre</td>
</tr>
<tr>
<td align="left" valign="top"><input name="présentation oui" type="checkbox" id="showroom" value="showroom" /></td>
<td align="left" valign="top">je désire une présentation dans vos locaux</td>
<td rowspan="2" align="left" valign="top"> </td>
<td rowspan="2" align="left" valign="top"><textarea name="autre" cols="36" rows="4" class="typo_form"id="autre2" onfocus="if(this.value=='précisez svp')this.value=''" onblur="if(this.value=='')this.value='précisez svp'" ;=";">précisez svp</textarea></td>
</tr>
<tr>
<td colspan="2" align="left" valign="top"> </td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td colspan="2"><input type="submit" name="envoi" value="Envoyer" />
<input type="reset" name="envoi2" value="Effacer" /></td></tr>
</table>
</form>
</body>
</html>
Merci!!! Je suis quasiment suspendu à ton clavier...
Hors ligne
Ce qui figure dans $_POST c'est le name, le plus simple est de mettre la même valeur dans id et name.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Ouche... avec ce code j'arrive a avoir une différence selon que la case est cochée ou pas:
J'ai soit "showroom" (si la case est cochée) soit "aucun choix sélectionné" (si la case est décochée)
C'est donc presque bon!!
Dernière question: comment faire pour qu'au lieu de "showroom" j'aie "oui" dans le résultat?
Je ne sais pas que modifier dans le code php ci-dessus, pour autant que ce soit ici et non dans le formulaire en html....
Aller pitié! Demain je m'achète un GROS bouquin sur le PHP!
Merci les gars!
Dernière modification par colinus (21-03-2011 22:26:34)
Hors ligne
Tu changes la value
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Tu changes la value
Yesssss!
It works!
Merci mille fois à tous et en particulier à Kris pour votre aide!
colinus
ps: je risque de revenir rapidement ici...
Hors ligne
Pages :: 1