8797 sujets

Développement web côté serveur, CMS

Bonjour,

Même lorsque je rempli tout les champs de ce formulaire, j'ai le message suivant :

"veuillez indiquer votre e-mail"

Pouvez-vous m'aider SVP merci.

FICHIER PHP

<?php
$mon_nom = "demande devis";
$monmail = "adresse@wanadoo.fr";
$date = date("d/m/Y");
$send = 1;
$sujet = "demande devis ";


function is_valid_email($email)
{
if(ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)", $email))
{
return 0;
}
else
{
return 1;
}
}

// Vérification des éléments saisis

$emailvalid = is_valid_email($email); // vérifie si c'est bien une adresse mail

if ($email == ""){
$emsg = "Veuillez indiquer votre e-mail afin que nous puissions vous répondre";
$send = "0";
}
else if ($emailvalid == 1){
$emsg = "Votre e-mail n'est pas valide";
$send = "0";
}

// si le message ne peut être envoyé

if($send == "0")
{
$msg = "$emsg,<br /><a href=\"javascript:history.back()\">"
." retournez à la page précédente pour compléter le formulaire </a>";
$s = "no";
echo "$msg";
}

// si le message peut être envoyé
else if($send == "1")
{
// le mail ...
$dest = "$mon_nom <$monmail>";
$en_tetes = "From: $nom $prenom <$email>\r\n Object : \r\n Reply-To: $email\r\n";
$message ="Formulaire validé le $date \r\n";
reset ($HTTP_POST_VARS);
while (list($key, $val) = each($HTTP_POST_VARS))
{
$message .= "$key : $val\n\n";
}
// envoi du mail ...

// Message qui confirme l'envoi du formulaire par mail
if ( mail($dest, $sujet, $message, $en_tetes) )
{
echo "<div style=\"text-align:center;padding-right:20px\"><p>Votre message a bien été envoyé.<p>"
."Nous vous remercions de votre visite sur ce site et nous vous répondrons dans les plus brefs délais</strong></div>";
}
else
{ echo "Echec de l’envoi du message";
}

}
?>


FICHIER HTML


<form name="demande de devis" method="post" action="envoi.php" enctype="text/plain">

<table style="border:0">
<tr>
<td style="text-align:left">Raison sociale </td>
<td><input type="text" name="raison sociale"></td>
</tr>
<tr>
<td style="text-align:left">Nom </td>
<td><input type="text" name="nom"></td>
</tr>
<tr>
<td style="text-align:left">Prénom </td>
<td><input type="text" name="prénom"></td>
</tr>
<tr>
<td style="text-align:left">Adresse </td>
<td><input type="text" name="adresse"></td>
</tr>
<tr>
<td style="text-align:left">Téléphone : </td>
<td><input type="text" name="téléphone"></td>
</tr>
<tr>
<td style="text-align:left">E-Mail </td>
<td><input type="text" name="email"></td>
</tr>
<td style="text-align:left">
</table>
Modifié par tanguy (23 Sep 2005 - 09:16)
Administrateur
Salut Tanguy et bienvenue à toi,

Je vais devoir jouer mon rôle de modérateur car il semblerait que tu n'aies pas pris le temps de lire le message d'annonce en haut du forum ("nouveau sur le forum").

Celui-ci indique clairement où se trouvent les Règles du forum (celles que tu as confirmé avoir lues et approuvé en cliquant sur le bouton d'inscription).

Ces règles expliquent notammment comment afficher un code correctement sur le forum. Merci de les appliquer pour le bien de la communauté.
Bonjour,

Même lorsque je rempli tout les champs de ce formulaire, j'ai le message suivant :

"veuillez indiquer votre e-mail"

Pouvez-vous m'aider SVP merci.

fichier html



<form name="demande de devis" method="post" action="envoi.php" enctype="text/plain">

<table style="border:0">
<tr>
<td style="text-align:left">Raison sociale  </td>
<td><input type="text" name="raison sociale"></td>
</tr>
<tr>
<td style="text-align:left">Nom </td>
<td><input type="text" name="nom"></td>
</tr>
<tr>
<td style="text-align:left">Prénom  </td>
<td><input type="text" name="prénom"></td>
</tr>
<tr>
<td style="text-align:left">Adresse </td>
<td><input type="text" name="adresse"></td>
</tr>
<tr>
<td style="text-align:left">Téléphone : </td>
<td><input type="text" name="téléphone"></td>
</tr>
<tr>
<td style="text-align:left">E-Mail  </td>
<td><input type="text" name="email"></td>
</tr>
<td style="text-align:left">
</table>


fichier PHP

	<?php
$mon_nom = "demande devis";									
$monmail = "adresse@wanadoo.fr";	 																
$date = date("d/m/Y"); 
$send = 1;
$sujet = "demande devis ";  


function is_valid_email($email)
{ 
  if(ereg("([[:alnum:]\.\-]+)(\@[[:alnum:]\.\-]+\.+)", $email))
  {
   return 0;
  }
   else
  {
   return 1;
  } 
}

// Vérification des éléments saisis

$emailvalid = is_valid_email($email);  // vérifie si c'est bien une adresse mail

if ($email == ""){
	$emsg = "Veuillez indiquer votre e-mail afin que nous puissions vous répondre";
	$send = "0";
}
else if ($emailvalid == 1){
	$emsg = "Votre e-mail n'est pas valide";
	$send = "0";
}

// si le message ne peut être envoyé

if($send == "0")
{
	$msg = "$emsg,<br /><a href=\"javascript:history.back()\">"
	      ." retournez à la page précédente pour compléter le formulaire </a>";
	$s = "no";
	echo "$msg";
}

// si le message peut être envoyé
else if($send == "1")
{	  
  // le mail ... 
  $dest = "$mon_nom <$monmail>";
  $en_tetes  = "From: $nom $prenom <$email>\r\n Object : \r\n Reply-To: $email\r\n";	
  $message ="Formulaire validé le $date \r\n";
  reset ($HTTP_POST_VARS);		  
  while (list($key, $val) = each($HTTP_POST_VARS)) 
  {
    $message .= "$key : $val\n\n";
  }
  // envoi du mail ... 

  // Message qui confirme l'envoi du formulaire par mail	
  if ( mail($dest, $sujet, $message, $en_tetes) ) 
          {
		    echo "<div style=\"text-align:center;padding-right:20px\"><p>Votre message a bien été envoyé.<p>"
			    ."Nous vous remercions de votre visite sur ce site et nous vous répondrons dans les plus brefs délais</strong></div>";
		  }
		  else
		  { echo "Echec de l’envoi du message";
		  }

}
?>
Salut,

tu ne dois pas utiliser les variables que tu reçois de ton formulaire directement comme ça : $email

Il faut que tu utilises le valeurs contenues dans le tableau $_POST.

Exemple :


$_POST['email']


Sinon, pas d'espaces dans les nom de champs (raison sociale)!

Voilà, bon courage !
Administrateur
Tanguy > pourquoi avoir créé un second message pour ton code ?
Il n'était pas plus facile de modifier ton premier message ? Smiley sweatdrop
Salut et merci beaucoup de ta réponse.

Donc si j'ai bien compris partout il y a une variable même après les "if" et "else if" il faut que je tape $_POST, donc quasiment toute les lignes du script ?
non, tu peux déclarer au début de ton script pour toutes tes variables :


$email = $_POST['email'];


et laisser ton code tel-quel.
Mais c'est pas l'idéal, je te conseille d'utiliser directement les variables contenues dans $_POST[] ...
Désolé Monsieur L'administrateur, la prochaine fois je ferais "éditer" pour modifier mon message.

Merci SUD pour ta réponse je vais donc inscrire au début de mon script :

$_POST['Raison_sociale'];
$_POST['Nom'];
$_POST['Prénom'];
$_POST['adresse'];
$_POST['telephone'];
$_POST['email'];
Salut,

tu peux aussi utiliser extract($_POST); pour créer des variables
avec tout ce qui a été posté.

Attention, ça permet à qui veut de poster des variables non prévues.

Salutations,

Marc