Besoin d'aide il se passe rien c'est un script pour formuluaire

erzascarlett2016 -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
mon formulaire sert a envoyer un message avec nom et email a inscrit je sais pas ce qui va pas il ne se produit rien
aider moi svp
<!DOCTYPE html>
<html>
<head>
        <meta charset ="utf -8" />
		<link rel="stylesheet" type="text/css" href="lilicss.css">
       <title> planet beatrice</title>
</head>
<body>

<?php include ("menu.inc.php");?>
<?php


$destinataire = '***@***';


$copie = 'oui';


$form_action = 'formulaire.php';


$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";


$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";



function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES);
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}

	$text = nl2br($text);
	return $text;
};


function IsEmail($email)
{
	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
	return (($value === 0) || ($value === false)) ? false : true;
}

// formulaire envoyé, on récupère tous les champs.
$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

if (isset($_POST['envoi']))
{
	if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
	{
		// les 4 variables sont remplies, on génère puis envoie le mail
		$headers  = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
				'Reply-To:'.$email. "\r\n" .
				'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
				'Content-Disposition: inline'. "\r\n" .
				'Content-Transfer-Encoding: 7bit'." \r\n" .
				'X-Mailer:PHP/'.phpversion();

		// envoyer une copie au visiteur ?
		if ($copie == 'oui')
		{
			$cible = $destinataire.','.$email;
		}
		else
		{
			$cible = $destinataire;
		};

		// Remplacement de certains caractères spéciaux
		$message = str_replace("'","'",$message);
		$message = str_replace("’","'",$message);
		$message = str_replace(""",'"',$message);
		$message = str_replace('<br>','',$message);
		$message = str_replace('<br />','',$message);
		$message = str_replace("<","<",$message);
		$message = str_replace(">",">",$message);
		$message = str_replace("&","&",$message);

		// Envoi du mail
		if (mail($cible, $objet, $message, $headers))
		{
			echo '<p>'.$message_envoye.'</p>';
		}
		else
		{
			echo '<p>'.$message_non_envoye.'</p>';
		};
	}
	else
	{
		
		echo '<p>'.$message_formulaire_invalide.'</p>';
		$err_formulaire = true;
	};
};

if (($err_formulaire) || (!isset($_POST['envoi'])))
{

	echo '
	
<form id="contact" method="post" action="'.$form_action.'">
<fieldset><legend>Personal</legend>
<label for="nom">Nom :</label><input type="text" class="required" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />
<label for="email">Email :</label><input type="text" class="required" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />
</fieldset>
<fieldset><legend>Message</legend>
<label for="message">Message :</label><textarea id="message" class="required" name="message" tabindex="3" cols="165" rows="40">'.stripslashes($message).'</textarea>

<label><span> </span><input type="submit" value="submit" name="envoyer"></label>
</fieldset>
</form>
</body>
</html>';
};
?>
A voir également:

4 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Peux-tu décrire plus précisément ? (pas d'affichage, ne fait pas tout ce qui est désiré, ... )

$message = str_replace(""",'"',$message);
me semble étrange.

$message = str_replace("&","&",$message);
Est sensé faire quoi ? (comme pour les 2 lignes qui précèdent)
0
erzascarlett2016
 
j'ai fais un moteur de recherche pour site et ce formulaire le moteur marche parfaitement neanmoins au niveau du formulaire apres l'avoir remplir aucun message n'est envoyer est ce parce que je n'ai pas fais de base de donnees pour ca??? quand j'appuie sur envoyer la page d'action du moteur de recherche s'affiche seule avec rien du tout ca ne dis pas si le message est envoyer ou pas en plus la reponse devait apparaitre dans la page du formulaire et non dans celle du resultat du moteur de recherche.voici le code commenter

<!DOCTYPE html>
<html>
<head>
        <meta charset ="utf -8" />
		<link rel="stylesheet" type="text/css" href="lilicss.css">
       <title> planet beatrice</title>
</head>
<body>

<?php include ("menu.inc.php");?>
<?php
/*
	********************************************************************************************
	CONFIGURATION
	********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = '***@***';

// copie ? (envoie une copie au visiteur)
$copie = 'oui';

// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = 'formulaire.php';

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
	********************************************************************************************
	FIN DE LA CONFIGURATION
	********************************************************************************************
*/

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES);
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}

	$text = nl2br($text);
	return $text;
};

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email)
{
	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
	return (($value === 0) || ($value === false)) ? false : true;
}

// formulaire envoyé, on récupère tous les champs.
$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

if (isset($_POST['envoi']))
{
	if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
	{
		// les 4 variables sont remplies, on génère puis envoie le mail
		$headers  = 'MIME-Version: 1.0' . "\r\n";
		$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
				'Reply-To:'.$email. "\r\n" .
				'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
				'Content-Disposition: inline'. "\r\n" .
				'Content-Transfer-Encoding: 7bit'." \r\n" .
				'X-Mailer:PHP/'.phpversion();

		// envoyer une copie au visiteur ?
		if ($copie == 'oui')
		{
			$cible = $destinataire.','.$email;
		}
		else
		{
			$cible = $destinataire;
		};

		// Remplacement de certains caractères spéciaux
		$message = str_replace("'","'",$message);
		$message = str_replace("’","'",$message);
		$message = str_replace(""",'"',$message);
		$message = str_replace('<br>','',$message);
		$message = str_replace('<br />','',$message);
		$message = str_replace("<","<",$message);
		$message = str_replace(">",">",$message);
		$message = str_replace("&","&",$message);

		// Envoi du mail
		if (mail($cible, $objet, $message, $headers))
		{
			echo '<p>'.$message_envoye.'</p>';
		}
		else
		{
			echo '<p>'.$message_non_envoye.'</p>';
		};
	}
	else
	{
		// une des 3 variables (ou plus) est vide ...
		echo '<p>'.$message_formulaire_invalide.'</p>';
		$err_formulaire = true;
	};
}; // fin du if (!isset($_POST['envoi']))

if (($err_formulaire) || (!isset($_POST['envoi'])))
{

	echo '
	
<form id="contact" method="post" action="'.$form_action.'">
<fieldset><legend>Personal</legend>
<label for="nom">Nom :</label><input type="text" class="required" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />
<label for="email">Email :</label><input type="text" class="required" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />
</fieldset>
<fieldset><legend>Message</legend>
<label for="message">Message :</label><textarea id="message" class="required" name="message" tabindex="3" cols="165" rows="40">'.stripslashes($message).'</textarea>

<label><span> </span><input type="submit" value="submit" name="envoyer"></label>
</fieldset>
</form>
</body>
</html>';
};
?>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Ton code est bourré d'erreurs...
En plus de celles relevées par Nhenry... tu peux ajouter :
- La variable $objet qui n'est pas définie
- Des points virgules un peu n'importe où ( derrière un if par exemple..)

Ensuite... penses à placer l'essentiel du code php AVANT ton code HTML.
cela rend le code plus lisible .. et ainsi plus facile à maintenir.


Bref...
Essayes ceci (ton code normalement corrigé...)

<?php

//********************************************************************************************
//CONFIGURATION
//********************************************************************************************

// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = '***@***';

// copie ? (envoie une copie au visiteur)
$copie = 'oui';


// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

// Objet du mail :
$objet = " Mail test ";


$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

//********************************************************************************************
//Fonctions
//********************************************************************************************

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text) {
  $text = htmlspecialchars(trim($text), ENT_QUOTES);
  if (1 === get_magic_quotes_gpc()){
    $text = stripslashes($text);
  }

  $text = nl2br($text);
  return $text;
}

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email) {
 $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
 return (($value === 0) || ($value === false)) ? false : true;
}


//********************************************************************************************
// Récupération des variables
//********************************************************************************************
$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : NULL;
$email   = (isset($_POST['email']))   ? IsEmail(Rec($_POST['email']))   : NULL;
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : NULL;

//********************************************************************************************
// Traitement du SUBMIT
//********************************************************************************************
$msg = array(); //variable contenant les messages eventuels.

if (isset($_POST['envoi'])) {
    if ($nom  && $email && $objet && $message) {
      // les 4 variables sont remplies, on génère puis envoie le mail
      $headers  = 'MIME-Version: 1.0' . "\r\n";
      $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
                  'Reply-To:'.$email. "\r\n" .
                  'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
                  'Content-Disposition: inline'. "\r\n" .
                  'Content-Transfer-Encoding: 7bit'." \r\n" .
                  'X-Mailer:PHP/'.phpversion();

      // envoyer une copie au visiteur ?
      if ($copie == 'oui') {
        $cible = $destinataire.','.$email;
      } else {
        $cible = $destinataire;
      }

      // Remplacement de certains caractères spéciaux
      $message = str_replace("’","'",$message);
      $message = str_replace('<br>','',$message);
      $message = str_replace('<br />','',$message);


      // Envoi du mail
      if (mail($cible, $objet, $message, $headers)){
        $msg[] = '<p>'.$message_envoye.'</p>';
      } else {
        $msg[] = '<p>'.$message_non_envoye.'</p>';
      }
      
    } else {
      // une des 3 variables (ou plus) est vide ...
      $msg[] = '<p>'.$message_formulaire_invalide.'</p>';
      $err_formulaire = true;
    }
 
} // fin du if (!isset($_POST['envoi']))

?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset ="utf-8" />
    <link rel="stylesheet" type="text/css" href="lilicss.css">
    <title> planet beatrice</title>
  </head>
  <body>
    <?php include ("menu.inc.php");

      //Affichage des éventuels messages
      if(!empty($msg)){
        foreach($msg as $strMsg){
          echo $strMsg;
        }
      }
    

      if ($err_formulaire || !isset($_POST['envoi'])) {

      echo " <form id='contact' method='post' action=''>
              <fieldset>
                <legend>Personal</legend>
                <label for='nom'>Nom :</label>
                <input type='text' class='required' id='nom' name='nom' value='".stripslashes($nom)."' tabindex='1' />
                <label for='email'>Email :</label>
                <input type='text' class='required' id='email' name='email' value='".stripslashes($email)."' tabindex='2' />
              </fieldset>
              <fieldset>
                <legend>Message</legend>
                <label for='message'>Message :</label>
                <textarea id='message' class='required' name='message' tabindex='3' cols='165' rows='40'>".stripslashes($message)."</textarea>
                <label><span> </span>
                <input type='submit' value='submit' name='envoyer'></label>
              </fieldset>
            </form>";
      }
    ?>
  </body>
</html>


Cordialement, 
Jordane                                                                 
0
erzascarlett
 
merci d'avoir repondu au message j'ai essayer votre solution mais ca n'a pas changer le resultat est le meme. please help
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Rajoute au debut du script :
error_reporting(E_ALL);
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ah. Et... dans le premier IF ... ca devrait etre "envoyer" ....au lieu de "envoi" .
0
erzascarlett > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
j'avais deja remplacer les envoie par envoyer je viens d'ajouter error_reporting(E_ALL); mais le resultat n'a pas changer
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Quand tu dis : "le resultat n'a pas changé"... c'est à dire ? Tu peux être plus précis.
Qu'est-ce qui s'affiche sur ta page ??

En attendant, peux tu tester ceci :
<?php
//affichage des erreurs PHP
error_reporting(E_ALL);

//********************************************************************************************
//CONFIGURATION
//********************************************************************************************

// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = '***@***';

// copie ? (envoie une copie au visiteur)
$copie = 'oui';


// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

// Objet du mail :
$objet = " Mail test ";


$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

//********************************************************************************************
//Fonctions
//********************************************************************************************

/*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
function Rec($text) {
  $text = htmlspecialchars(trim($text), ENT_QUOTES);
  if (1 === get_magic_quotes_gpc()){
    $text = stripslashes($text);
  }

  $text = nl2br($text);
  return $text;
}

/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
function IsEmail($email) {
 $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
 return (!$value) ? false : true;
}


//********************************************************************************************
// Récupération des variables
//********************************************************************************************
$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : NULL;
$email   = (isset($_POST['email']) && IsEmail(Rec($_POST['email'])))  ? Rec($_POST['email'])   : NULL;
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : NULL;

//********************************************************************************************
// Traitement du SUBMIT
//********************************************************************************************
$msg = array(); //variable contenant les messages eventuels.

//le temps des tests :
print_r($_POST);

if (isset($_POST['envoyer'])) {
  //le temps des tests:
  echo " Le formulaire a bien été envoyé....";


    if ($nom  && $email && $objet && $message) {
      // les 4 variables sont remplies, on génère puis envoie le mail
      $headers  = 'MIME-Version: 1.0' . "\r\n";
      $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
                  'Reply-To:'.$email. "\r\n" .
                  'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
                  'Content-Disposition: inline'. "\r\n" .
                  'Content-Transfer-Encoding: 7bit'." \r\n" .
                  'X-Mailer:PHP/'.phpversion();

      // envoyer une copie au visiteur ?
      if ($copie == 'oui') {
        $cible = $destinataire.';'.$email;
      } else {
        $cible = $destinataire;
      }

      // Remplacement de certains caractères spéciaux
      $message = str_replace("’","'",$message);
      $message = str_replace('<br>','',$message);
      $message = str_replace('<br />','',$message);


      // Envoi du mail
      if (mail($cible, $objet, $message, $headers)){
        $msg[] = '<p>'.$message_envoye.'</p>';
      } else {
        $msg[] = '<p>'.$message_non_envoye.'</p>';
      }
      
    } else {
      // une des 3 variables (ou plus) est vide ...
      $msg[] = '<p>'.$message_formulaire_invalide.'</p>';
      $err_formulaire = true;
    }
 
} // fin du if (!isset($_POST['envoi']))

?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset ="utf-8" />
    <link rel="stylesheet" type="text/css" href="lilicss.css">
    <title> planet beatrice</title>
  </head>
  <body>
    <?php include ("menu.inc.php");

      //Affichage des éventuels messages
      if(!empty($msg)){
        foreach($msg as $strMsg){
          echo $strMsg;
        }
      }
    

      if ($err_formulaire || !isset($_POST['envoi'])) {

      echo " <form id='contact' method='post' action='' name='myform'>
              <fieldset>
                <legend>Personal</legend>
                <label for='nom'>Nom :</label>
                <input type='text' class='required' id='nom' name='nom' value='".stripslashes($nom)."' tabindex='1' />
                <label for='email'>Email :</label>
                <input type='text' class='required' id='email' name='email' value='".stripslashes($email)."' tabindex='2' />
              </fieldset>
              <fieldset>
                <legend>Message</legend>
                <label for='message'>Message :</label>
                <textarea id='message' class='required' name='message' tabindex='3' cols='165' rows='40'>".stripslashes($message)."</textarea>
                <label><span> </span>
                <input type='submit' value='submit' name='envoyer'></label>
              </fieldset>
            </form>";
      }
    ?>
  </body>
</html>

0
erzascarlett2016
 
ce que je veux dire c'est que normalement il doit afficher un message pour dire si le message a ete envoyer ou non ou meme si il y a une erreur dans le code au niveau de la page indiquer dans action mais au lieu de ca il affiche la page correspondant au formulaire du moteur de recherche du site avec aucun message il ya juste la page qui s'affiche

le probleme persiste je sais vraiment pas ou se situe le probleme dans le code
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > erzascarlett2016
 
Et rien ne s'affiche malgré ke code modifié ?
Pas possible!

Montres nous ton code tel qu'il est sur ton site....
0