Problème php formulaire

Petit nouveau ! | 3 Messages

16 févr. 2015, 17:39

Bonjour,

je débute dans le webdisegn et surtout dans le PHP, j'ai créer un formulaire pour mon site web et le code PHP mais sa ne fonctionne pas le mail n'arrive pas donc je suis allé voir un peu sur le net pour le code PHP qui marche vraiment et la sa me donne toujours Erreur... si quelqu'un pourrais m'aider je vous en remercie d'avance.
Je met le code PHP:
<?php
/*
	********************************************************************************************
	CONFIGURATION
5.	********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = '[email protected]';
 
10.// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
 
// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
15.$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
 
// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
20. 
/*
	********************************************************************************************
	FIN DE LA CONFIGURATION
	********************************************************************************************
25.*/
 
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
30.	// formulaire non envoyé
	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
35.	/*
	 * cette fonction sert à nettoyer et enregistrer un texte
	 */
	function Rec($text)
	{
40.		$text = htmlspecialchars(trim($text), ENT_QUOTES);
		if (1 === get_magic_quotes_gpc())
		{
			$text = stripslashes($text);
		}
45. 
		$text = nl2br($text);
		return $text;
	};
 
50.	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($email)
	{
55.		$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.
60.	$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
        $prenom     = (isset($_POST['prenom']))     ? Rec($_POST['prenom'])     : '';
	$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
	$tel   = (isset($_POST['tel']))   ? Rec($_POST['tel'])   : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
65.	// 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é
 
	if (($nom != '') && ($prenom != '') &&($email != '') && ($tel != '') && ($message != ''))
	{
70.		// 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" .
					'X-Mailer:PHP/'.phpversion();
75. 
		// envoyer une copie au visiteur ?
		if ($copie == 'oui')
		{
			$cible = $destinataire.','.$email;
80.		}
		else
		{
			$cible = $destinataire;
		};
85. 
		// Remplacement de certains caractères spéciaux
		$message = str_replace("'","'",$message);
		$message = str_replace("&#8217;","'",$message);
		$message = str_replace(""",'"',$message);
90.		$message = str_replace('<br>','',$message);
		$message = str_replace('<br />','',$message);
		$message = str_replace("<","<",$message);
		$message = str_replace(">",">",$message);
		$message = str_replace("&","&",$message);
95. 
		// Envoi du mail
		if (mail($cible, $objet, $message, $headers))
		{
			echo '<p>'.$message_envoye.'</p>'."\n";
100.		}
		else
		{
			echo '<p>'.$message_non_envoye.'</p>'."\n";
		};
105.	}
	else
	{
		// une des 3 variables (ou plus) est vide ...
		echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
110.	};
}; // fin du if (!isset($_POST['envoi']))
?>
merci

Mammouth du PHP | 688 Messages

16 févr. 2015, 18:24

s'il y a les 105. and co dans le code source du fichier php présent sur le serveur, cela ne peut pas marcher.
s'ils n'y sont pas, il faudrait nous donner le message affiché.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 févr. 2015, 18:24

Hello !

Quel message d'erreur obtiens tu ? est-ce juste "L'envoi du mail a échoué, veuillez réessayer SVP." ? ou bien est-ce qu'il te dit qu'il y a une erreur de serveur SMTP, un destinataire invalide, ... ou autre ?

Est-ce que tu exécutes ton codes en local chez toi ou sur un site hébergé ? si c'est chez toi, est ce que les paramètres d'envoi de mail de php (dans le php.ini) ont bien été configurés pour correspondre au serveur SMTP de fournisseur d'accès internet ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

16 févr. 2015, 18:43

Bonjour,

voici la page d'erreur : http://hpics.li/3263f16

mon site été hébérgé quand j'ai éssayé le formulaire.

Merci

Petit nouveau ! | 3 Messages

16 févr. 2015, 18:47

J'ai oublié de dire que l'adresse de la page d'erreur est "http://monsite.com/formail.php "

j'ai appelé mon fichier php "Formail.php"