8795 sujets

Développement web côté serveur, CMS

Bonjour à tous !

Voilà le souci :
J'ai un formulaire, avec des cases à remplir, et deux cases à cocher.
En gros, on demande au type de remplir son nom, société, téléphone, mail, et sa "question".
Ensuite, via les deux cases à cocher, il spécifie s'il veux être contacté par téléphone et/ou en rendez-vous.

Donc, j'ai fait 3 tests :
J'ai coché que la ligne "contact_tel" => Réponse en mail me disant que j'ai coché contact_rdv Smiley ohwell
J'ai coché que la ligne "contact_rdv"=> Réponse en mail me disant que j'ai coché contact_rdv
J'ai coché les deux lignes=> Réponse en mail me disant que j'ai coché contact_rdv...
En gros, il me réponds toujours la même chose...

So help me plz Smiley smile

Je vous copie le code :
<?php
$nom = $_POST['nom'] ;
$societe = $_POST['societe'] ;
$email = $_POST['email'] ;
$tel = $_POST['tel'] ;
$question = $_POST['question'] ;
$contact_tel = $_POST['contact_tel'] ;
$contact_rdv = $_POST['contact_rdv'] ;
$destination = "moi@moi.fr";
$headers = 'From: Formulaire_EXT' . "\r\n" .
'Reply-To: moi@moi.fr' . "\r\n";

$sujet = $nom.",".$societe.",".$email;
if ($_POST)
{
	if (empty($question))
	{
		$erreur = true;
		$errmsg = 'Merci de saisir votre question.';
	}
	if (empty($email))
	{
		$erreur = true;
		$errmsg = 'Merci de saisir votre email.';
	}
	if (empty($tel))
	{
		$erreur = true;
		$errmsg = 'Merci de saisir votre num&eacute;ro de t&eacute;l&eacute;phone.';
	}
	if (empty($societe))
	{
		$erreur = true;
		$errmsg = 'Merci de saisir votre societe.';
	}
	if (empty($nom))
	{
		$erreur = true;
		$errmsg = 'Merci de saisir votre nom.';
	}
	if (!$erreur)
	{
		$question = $question."\r\n".$tel.",".$contact_tel.",".contact_rdv;
		if (mail($destination, $sujet, $question, $headers))
		{
			/*mail($destination, $sujet, $question, $headers);*/
			header("Location: pagedeconfirmation_ext.php");
			exit;
		}
		else
		{
			echo "Erreur survenue lors de l'envoi du mail";
		}
	}
}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Détail de mon/mes projet(s)</title>
<style type="text/css">
<!--
.formLabels {
	font-weight: bold;
	text-align: right;
	padding-bottom: 10px;
	font-size:12px;
}
input, select {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-weight: normal;
	background-color: #BBBBBB;
	margin-bottom: 10px;
}
-->
</style>

</head>

<body>
<div style="width:610px; height:400px;">
	<table border="0">
	<tr>
	<td>
		<table width="600" border="0">
			<tr>
				<td width="600">
					<img src="head.png" />
				</td>
			</tr>
		</table>
	<form id="form1" name="form1" method="POST" action="formulaire_externalisation.php">
		<fieldset>
		<legend><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#c82b82;"> Détails de mon/mes projet(s) </font></legend>
		<table width="590" border="0">
			<tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#BBBBBB;">Nom :</font></td>
				<td><input type="text" name="nom" id="nameText" value="<?php echo $_POST['nom'];?>"/></td>
			</tr>
			<tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#BBBBBB;">Soci&eacute;t&eacute; :</font></td>
				<td><input type="text" name="societe" id="nameText" value="<?php echo $_POST['societe'];?>"/></td>
			</tr>
			<tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#BBBBBB;">Email :</font></td>
				<td><input type="text" name="email" id="emailText" value="<?php echo $_POST['email'];?>"/></td>
			</tr>
            <tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#BBBBBB;">Téléphone :</font></td>
				<td><input type="text" name="tel" id="telText" value="<?php echo $_POST['tel'];?>"/></td>
			</tr>
			<tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#c82b82;">Mon projet :</font></td>
				<td><textarea name="question" id="questionText" cols="50" rows="6" value="<?php echo $_POST['question'];?>"></textarea></td>
			</tr>
            <tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#BBBBBB;">Je veux &ecirc;tre contact&eacute; par t&eacute;l&eacute;phone :</font></td>
				<td><input type="checkbox" name="contact_tel" id="contact_tel" value="<?php echo $_POST['contact_tel'];?>"/></td>
			</tr>
            <tr>
				<td class="formLabels"><font style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#BBBBBB;">Je souhaite prendre rendez-vous :</font></td>
				<td><input type="checkbox" name="contact_rdv" id="contact_rdv" value="<?php echo $_POST['contact_rdv'];?>"/></td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td><font style="font-family: Verdana, Arial, Helvetica, sans-serif; size:12px;">
					<?php
					if ($erreur) {
					echo '<p class="alert">'.$errmsg.'</p>';
					}
					?>
                    </font>
					<input type="submit" name="Envoyer" id="Envoyer" value="Envoyer" />
				</td>
			</tr>
		</table>

		</fieldset>
	</form>
    <table width="600" border="0">
			<tr>
				<td width="600">
					<img src="deg_bas.png" />				</td>
			</tr>
		</table>
    </td>
    </tr>
    </table>
</div>
</body>
</html>


Merci à tous !
Salut,

Tu devrais tester tes champs checkbox avec isset($_POST['contact_tel']), car si la checkbox n'est pas cochée, elle ne passe pas dans $_POST
Salut Siddhy !

Merci pour ta réponse, mais mes connaissances en php sont plus que limitées... De ce fait, je comprends pas bien ce que tu me dis Smiley ohwell

Tu veux dire que je dois, en haut de mon fichier à la place du $contact_tel=$_POST['contact_tel']; mettre :

$contact_tel = isset($_POST['contact_tel']);

C'est bien ça ?
Modérateur
Salut,

Stase veut surement dire ceci apparemment :
if (isset($_POST['contact_tel']==false){
 $erreur = true;
 $errmsg = 'Merci de remplir la case à cocher.';
}


En ce qui concerne ton champ de numéro de téléphone; je peux te conseiller de rajouter ceci afin que l'internaute n'écrive pas n'importe quoi dans ce champ : Smiley cligne
if (empty($tel) [b]|| preg_match(#^0[1-68][0-9]{8}$#,$tel)==false[/b] ){
 $erreur = true;
 $errmsg = 'Merci de saisir correctement votre numéro de téléphone.';
}


Édit :
L'utilisateur devra taper le numéro sans espace et pas de caractère alphabétique. Sinon tu peux faire ceci qui rendra plus permissif :
if (empty($tel) ||preg_match(#^0[1-68]([-. ]?[0-9]{2}){4}$#,$tel)==false){
 ...
}

Suivant ton script, je ne comprends pas très bien pourquoi il y a des styles imbriqués Smiley cligne dans ton formulaire alors que tu as une css interne . Si je comprends bien tu ranges ta pile de vêtement dans le réfrigérateurs ou dans ta chambre ou dans ... ? Smiley biggol .

++
Modifié par Nolem (05 Jul 2008 - 20:58)