formulaire de contact

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire de contact

Re: formulaire de contact

par Yoel1601 » 17 mai 2025, 19:16

bonsoir upp

Re: formulaire de contact

par Yoel1601 » 14 mai 2025, 20:40

bonsoir petite relance en esperant une petite aide merci

Re: formulaire de contact

par Yoel1601 » 13 mai 2025, 20:51

merci arthur

1/ ok c est regler
2/ effectivement je n ai pas remarque qu'on repondant sa boite mail est bien affiche
mais j'ai essaye de quand meme affiche toutes les informations emis sur le formulaire soit affiche dans l'onglet message de la boite mail sa fonctionne pas
<?php
/*
	********************************************************************************************
	CONFIGURATION
	********************************************************************************************
*/
// expéditeur du dormulaire. Pour des raisons de sécurité, de plus en plus d'hébergeurs imposent que ce soit une adresse sur votre hébergement/nom de domaine.
// Par exemple si vous mettez ce script sur votre site "test-site.com", mettez votre email @test-site.com comme expéditeur (par exemple [email protected])
// Si vous ne changez pas cette variable, vous risquez de ne pas recevoir de formulaire.
$email_expediteur = 'contact@ SITE';
$nom_expediteur = 'Nouveau Contact Rideaux Métalliques';
 
// destinataire est votre adresse mail (cela peut être la même que cl'expéditeur ci-dessus). Pour envoyer à plusieurs destinataires à la fois, séparez-les par un point-virgule
$destinataire = 'contact@ SITE';
 
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
 
// Messages de confirmation du mail
$message_envoye = "Merci de nous avoir contactés ! Nous avons reçu votre demande et nous vous répondrons dans les plus brefs délais. Si votre problème est urgent, veuillez nous contacter au 01.55.78.81.11.";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP en apuyant sur ce lien - http://www.rideaux-metalliques-depannage.com/contacter/";
 
// 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.";
 
/*
	********************************************************************************************
	FIN DE LA CONFIGURATION
	********************************************************************************************
*/
 
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
	// formulaire non envoyé
	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
	/*
	 * 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'])   : '';
	$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
	$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é
 
	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_expediteur.' <'.$email_expediteur.'>' . "\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
		$caracteres_speciaux     = array('&#039;', '&#8217;', '&quot;', '<br>', '<br />', '&lt;', '&gt;', '&amp;', '…',   '&rsquo;', '&lsquo;');
		$caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...', '>>',      '<<'     );
 
		$objet = html_entity_decode($objet);
		$objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
 
 		$nom = html_entity_decode($nom);
		$nom = str_replace($caracteres_speciaux, $caracteres_remplacement, $nom);
		
		$email = html_entity_decode($email);
		$email = str_replace($caracteres_speciaux, $caracteres_remplacement, $email);
		
		$message = html_entity_decode($message);
		$message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
 
		// Envoi du mail
		$cible = str_replace(',', ';', $cible); // antibug : j'ai vu plein de forums où ce script était mis, les gens ne font pas attention à ce détail parfois
		$num_emails = 0;
		$tmp = explode(';', $cible);
		foreach($tmp as $email_destinataire)
		{
			if (mail($email_destinataire, $objet, $message, $headers))
				$num_emails++;
		}
 
		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
		{
			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.' <a href="http://www.rideaux-metalliques-depannage.com/contacter/">Retour au formulaire</a></p>'."\n";
	};
echo '<script type="text/javascript">setTimeout(function(){window.top.location="http://www.rideaux-metalliques-depannage.com/confirmation/"} , 10);</script>';
}; // fin du if (!isset($_POST['envoi']))
?>
3/ d'accord je vais essaye
4/effectivement mille excuse enfin j'ai compris le mailer test je l'ai bien fais a travers le formulaire note 8.8/10
deuxieme point petit 4/ non essaye mais a part moi tous ceux qui remplis ce formulaire je ne recois pas de mail je ne comprends pas j'ai une piste j'ai recu dans ovh hebergement SITE scripts mails 27 e mails en erreur
Final-Recipient: rfc822; mail @yahoo.fr
Original-Recipient: rfc822;mail @yahoo.fr
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx-eu.mail.am0.yahoodns.net
Diagnostic-Code: smtp; 554 Message not allowed - [299]
Final-Recipient: rfc822; mail @gmail.com
Original-Recipient: rfc822;mail @gmail.com
Action: failed
Status: 4.2.2
Remote-MTA: dns; alt1.gmail-smtp-in.l.google.com
Diagnostic-Code: smtp; 452-4.2.2 The recipient's inbox is out of storage space.
Please direct the 452-4.2.2 recipient to 452 4.2.2
https://support.google.com/mail/?p=OverQuotaTemp
5b1f17b1804b1-442eabfad61si5139835e9.60 - gsmtp
des probleme smtp


merci pour ton aide

Re: formulaire de contact

par @rthur » 13 mai 2025, 16:23

1/ Je voudrais retirer la redirection avec seconde si c est possible que se soit direct vers la page de confirme
Là, tu as mis 100 millisecondes (=0.1 secondes) en délai d'attente dans setTimeout, tu peux réduire si tu veux, et même mettre 0 mais ça ne changera pas grand chose je pense.
2/ quand je remplis les champs adresse mail et nom je n ai pas de retour sur ma boite mail y a que le dernier champ message que je recois dans la boite mail
Si tu cliques sur répondre dans ton webmail, ça devrait t'afficher l'email du demandeur vu que c'est ce que tu as indiqué dans l'entête Reply-to.
Si tu veux afficher le nom et l'adresse email dans le corps de l'email, il faut tu l'ajoutes dans ta variable $message
3/ comment rajoute un champ numero de telephone
Exactement comme tu as fais pour le nom, et idem, il te faudra le concaténer dans $message si tu veux retrouver la valeur indiquée dans le corps de l'email
4/ un peu complique a explique mais j vais essaye :D
Quand je fais le test du formulaire je recois bien un mail sur ma boite hotmail (creer depuis 24h note 9.8 sur 10 mail tester)
J'ai un gros doute sur le fait que tu utilises bien mail-tester. On est d'accord qu'il faut que tu mettes l'adresse e-mail de mail tester en destinataire de ton formulaire, puis que tu envoies un message via le formulaire et enfin que tu retournes sur mail-tester pour voir le résultat ?
Car là j'ai l'impression que tu envoies un mail depuis ta boite mail hotmail ce qui ne sert à rien.
seulement si je procede le test a partir de mon ordinateur ou mon telephone personel
mais quand mon frere essaye ou ma femme aucun mail arrive sur ma boite mail
tres bizarre :?: :?: un peu confus et encore desole de vous derange
essaye de faire la comparaison en leur demandant de mettre exactement les mêmes infos dans le formulaire que celles que toi tu saisis quand ça fonctionne de ton côté, car PHP s'exécutant côté serveur il est peu probable que le fait de changer de navigateur ou de PC change quelque chose.

Re: formulaire de contact

par Yoel1601 » 13 mai 2025, 13:34

EDIT


bonjour arthur voila une bonne nouvelle j ai trouve a partir d un post comment rediriger vers une page de confirmation
mais j ai 4 points encore inregle ;
1/ Je voudrais retirer la redirection avec seconde si c est possible que se soit direct vers la page de confirme
2/ quand je remplis les champs adresse mail et nom je n ai pas de retour sur ma boite mail y a que le dernier champ message que je recois dans la boite mail
3/ comment rajoute un champ numero de telephone
4/ un peu complique a explique mais j vais essaye :D
Quand je fais le test du formulaire je recois bien un mail sur ma boite hotmail (creer depuis 24h note 9.8 sur 10 mail tester) seulement si je procede le test a partir de mon ordinateur ou mon telephone personel
mais quand mon frere essaye ou ma femme aucun mail arrive sur ma boite mail
tres bizarre :?: :?: un peu confus et encore desole de vous derange
voila le code php
/*
	********************************************************************************************
	CONFIGURATION
	********************************************************************************************
*/
// expéditeur du dormulaire. Pour des raisons de sécurité, de plus en plus d'hébergeurs imposent que ce soit une adresse sur votre hébergement/nom de domaine.
// Par exemple si vous mettez ce script sur votre site "test-site.com", mettez votre email @test-site.com comme expéditeur (par exemple [email protected])
// Si vous ne changez pas cette variable, vous risquez de ne pas recevoir de formulaire.
$email_expediteur = '[email protected]';
$nom_expediteur = 'Nouveau Contact Rideaux Métalliques';
 
// destinataire est votre adresse mail (cela peut être la même que cl'expéditeur ci-dessus). Pour envoyer à plusieurs destinataires à la fois, séparez-les par un point-virgule
$destinataire = '[email protected]';
 
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
 
// Messages de confirmation du mail
$message_envoye = "Merci de nous avoir contactés ! Nous avons reçu votre demande et nous vous répondrons dans les plus brefs délais. Si votre problème est urgent, veuillez nous contacter au 01.55.78.81.11.";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP en apuyant sur ce lien - http://www.rideaux-metalliques-depannage.com/contacter/";
 
// 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.";
 
/*
	********************************************************************************************
	FIN DE LA CONFIGURATION
	********************************************************************************************
*/
 
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
	// formulaire non envoyé
	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
	/*
	 * 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'])   : '';
	$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
	$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é
 
	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_expediteur.' <'.$email_expediteur.'>' . "\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
		$caracteres_speciaux     = array('&#039;', '&#8217;', '&quot;', '<br>', '<br />', '&lt;', '&gt;', '&amp;', '…',   '&rsquo;', '&lsquo;');
		$caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...', '>>',      '<<'     );
 
		$objet = html_entity_decode($objet);
		$objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
 
		$message = html_entity_decode($message);
		$message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
 
		// Envoi du mail
		$cible = str_replace(',', ';', $cible); // antibug : j'ai vu plein de forums où ce script était mis, les gens ne font pas attention à ce détail parfois
		$num_emails = 0;
		$tmp = explode(';', $cible);
		foreach($tmp as $email_destinataire)
		{
			if (mail($email_destinataire, $objet, $message, $headers))
				$num_emails++;
		}
 
		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
		{
			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.' <a href="http://www.rideaux-metalliques-depannage.com/contacter/">Retour au formulaire</a></p>'."\n";
	};
echo '<script type="text/javascript">setTimeout(function(){window.top.location="http://www.rideaux-metalliques-depannage.com/confirmation/"} , 100);</script>';
}; // fin du if (!isset($_POST['envoi']))
?>

Re: formulaire de contact

par Yoel1601 » 12 mai 2025, 15:16

bonjour arthur
j ai change tout le code avec celui ci
<?php
/*
	********************************************************************************************
	CONFIGURATION
	********************************************************************************************
*/
// expéditeur du dormulaire. Pour des raisons de sécurité, de plus en plus d'hébergeurs imposent que ce soit une adresse sur votre hébergement/nom de domaine.
// Par exemple si vous mettez ce script sur votre site "test-site.com", mettez votre email @test-site.com comme expéditeur (par exemple [email protected])
// Si vous ne changez pas cette variable, vous risquez de ne pas recevoir de formulaire.
$email_expediteur = 'contact@SITE com';
$nom_expediteur = 'Nouveau Contact Rideaux Métalliques';
 
// destinataire est votre adresse mail (cela peut être la même que cl'expéditeur ci-dessus). Pour envoyer à plusieurs destinataires à la fois, séparez-les par un point-virgule
$destinataire = 'contact@SITE com';
 
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
 
// Messages de confirmation du mail
$message_envoye = "Merci de nous avoir contactés ! Nous avons reçu votre demande et nous vous répondrons dans les plus brefs délais. Si votre problème est urgent, veuillez nous contacter au NUMERO.";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP en apuyant sur ce lien - http://www.SITE com/contacter/";
 
// 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.";
 
/*
	********************************************************************************************
	FIN DE LA CONFIGURATION
	********************************************************************************************
*/
 
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
	// formulaire non envoyé
	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
	/*
	 * 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'])   : '';
	$objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
	$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é
 
	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_expediteur.' <'.$email_expediteur.'>' . "\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
		$caracteres_speciaux     = array('&#039;', '&#8217;', '&quot;', '<br>', '<br />', '&lt;', '&gt;', '&amp;', '…',   '&rsquo;', '&lsquo;');
		$caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...', '>>',      '<<'     );
 
		$objet = html_entity_decode($objet);
		$objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
 
		$message = html_entity_decode($message);
		$message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
 
		// Envoi du mail
		$cible = str_replace(',', ';', $cible); // antibug : j'ai vu plein de forums où ce script était mis, les gens ne font pas attention à ce détail parfois
		$num_emails = 0;
		$tmp = explode(';', $cible);
		foreach($tmp as $email_destinataire)
		{
			if (mail($email_destinataire, $objet, $message, $headers))
				$num_emails++;
		}
 
		if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
		{
			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.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
	};
}; // fin du if (!isset($_POST['envoi']))
?>
je recois bien les mails sur ma boite mail hotmail j ai du creer une nouvelle parce que avec celle que j avais tu avais raison je recevez une fois sur deux et j ai profitez justement pour creer une redirection de mail contact@SITE va sur la boite mail Hotmail pour eviter les spams

Re: formulaire de contact

par @rthur » 12 mai 2025, 15:07

Je t'ai donné dans mon dernier message plusieurs points à corriger, pourrais-tu tester et répondre point par point à chacune d'elle stp ?

Re: formulaire de contact

par Yoel1601 » 12 mai 2025, 15:02

bonjour desole de relance si quelqu un peut m aide merci

Re: formulaire de contact

par Yoel1601 » 07 mai 2025, 20:33

merci mille fois voila resolu a moitie quand je finis mon formulaire je suis redirige vers une page ou une phrase est inscrite que le mail a bien ete envoye alors aue je vous redirige vers une page de confirmation avec le decors du site je pense que c est le code header

Re: formulaire de contact

par @rthur » 07 mai 2025, 20:19

Désolé mais je pense que c'est impossible que tu aies eu 10/10 avec ce code là sur mail-tester... depuis ta propre boite mail peut-être, mais pas avec ce code.
Mais si c'est le cas, partage moi l'url de la page qui t'indique 10/10 car ça m'intrigue vraiment :-D

Du coup, à minima 3 corrections sur ton code :
- tu as supprimé l'appel à la fonction mail() donc c'est certain que plus aucun mail ne partira ! :-D
Ma demande était de faire un var_dump() autour de ta fonction mail pas en remplacement, afin que quand tu lances ton script cela t'affiche true ou false si la fonction mail() échoue :
var_dump(mail($TO, $subject, $message, $h));
- tu essayes toujours d'envoyer un mail à ton adresse [email protected] en indiquant comme expéditeur la même adresse [email protected].
Or c'est assez simple pour Yahoo de se dire qu'il n'a pas réellement envoyé cet e-mail !
Du coup, il est probable qu'il te considère comme spam (vérifie dans la liste des spams d'ailleurs quand même) voir même comme il en est certain il est possible qu'il supprime le mail sans même le mettre en spam.
=> Mon conseil, met une autre adresse en expéditeur que ton adresse yahoo

- tu utilises la fonction each() qui n'existe plus depuis PHP8, vérifie la version de ton PHP pour être sur que tu sois encore en PHP7

Re: formulaire de contact

par Yoel1601 » 07 mai 2025, 19:19

Voila j ai changer le codage
<?php
$TO = "MAIL";
$TO = "contact@ SITE com";
 
$h = "From: " . $TO;
 
$message = "";
 
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
 
var_dump($TO, $subject, $message, $h);
 
//Header("Location: http://SITE/confirmation/");
 
?>
merci pour ton aide je ne recois pas de mail
j ai recu 10 / 10 sur le test

je modifie le fichier grace a filezila le fichier se trouve dans www / contacter / contacter.php

Re: formulaire de contact

par @rthur » 07 mai 2025, 18:56

1) oui, et du coup qu'est-ce qui s'affiche ?
2) où fais tu ce test ? sur le serveur d'un hébergeur web ?
3) quel pourcentage obtiens-tu sur mail-tester ?

Re: formulaire de contact

par Yoel1601 » 07 mai 2025, 17:27

Bonjour Arthur deja merci pour ton aide je suis amateur j essaye de comprendre ton message

par rapport au header
Header("Location: SITE/confirmation/");
je dois le mettre comme sa :?:
//Header("Location: SITE/confirmation/");
par rapport var_dump()
var_dump($TO, $subject, $message, $h);
a la place de mail

par rapport au point 2

ce code est utilise pour le site et je fais un test pour voir si on recois les mails de contact la boite mail utilise dessus est une boite mail yahoo je n ai pas cree de boite mail a partir du site cet a dire mail @ SITE com

par rapport au point 3

j ai verifier tout est vert c est plus un problemes de codage

merci #-o

Re: formulaire de contact

par @rthur » 07 mai 2025, 16:57

Bonjour,

Trois points à vérifier :
1) Supprime ou met en commentaire la fonction header() et fais un var_dump() de la fonction mail() pour savoir ce qu'elle retourne.

2) tu exécutes bien ton code sur un serveur géré par un hébergeur et pas en test sur ta propre machine ? Car si tu es sur ta propre machine, c'est normal que les emails ne partent pas car tu n'as probablement pas de serveur mail installé dessus.


3) Par ailleurs, utiliser la même valeur en email d'expéditeur et e-mail de destintaire augmente le risque d'être considéré comme du spam.
Dans la même idée pour éviter d'être considéré comme du spam, il faut que ton serveur web soit autorisé (via SPF à minima et dans l'idéal DKIM) à envoyer des emails par le propriétaire du nom de domaine indiqué en expéditeur.
Tu peux utiliser mail-tester : https://www.mail-tester.com/ pour vérifier le risque d'être considéré comme du spam.

formulaire de contact

par Yoel1601 » 07 mai 2025, 16:23

Bonjour je vous remercie de bien vouloir m aide j ai un souci avec mon code pour un formulaire de contact je ne recois pas mes mails voulez vous bien m aide merci mille fois :( :( :(

code php
<?php
$TO = "MAIL";
$TO = "NOM";
 
$h = "From: " . $TO;
 
$message = "";
 
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
 
mail($TO, $subject, $message, $h);
 
Header("Location: SITE/confirmation/");
 
?>
Code Htlm
<form name="formulaire" id="formulaire" action="contacter.php" method="post">
<input type="hidden" name="valid" id="valid">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Civilité</font></strong></td>
<td><input type="radio" name="civilite" onclick="set_structure()"><label for="civilite"><strong><font face="arial" size="2" color="#000000">Mlle</font></strong></label>
<input type="radio" name="civilite" onclick="set_structure()"><label for="civilite"><strong><font face="arial" size="2" color="#000000">Mme</font></strong></label>
<input type="radio" name="civilite" onclick="set_structure()"><label for="civilite"><strong><font face="arial" size="2" color="#000000">M.</font></strong></label></td>
</tr>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Votre Nom <font color="#ff0000">*</font></font></strong></td>
<td><input type="text" name=requirednomClient size="30" maxlength="100"/></td>
</tr>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Votre Tel <font color="#ff0000">*</font></font></strong></td>
<td><input type="text" name=requiredTel size="30" maxlength="100"/></td>
</tr>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Code Postal</font></strong></td>
<td><input type="text" name="CodePostal" size="30" maxlength="100"/></td>
</tr>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Ville</font></strong></td>
<td><input type="text" name="Ville" size="30" maxlength="100"/></td>
</tr>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Adresse</font></strong></td>
<td><input type="text" name="Adresse" size="30" maxlength="100"/></td>
</tr>
<tr>
<td><strong><font face="arial" size="2" color="#000000">Commentaire</font></strong></td>
<td><textarea cols="30" rows="4" name="Commentaire"></textarea></td>
</tr>
<tr>
<td><input hspace="50" type="submit" value="Envoyer" /></td>
<td><input hspace="50" type="reset" value="Annuler" /></td>
</tr>
</tbody></table>
</form>
Merci mille fois