Problème formulaire de contact HTML PHP

Résolu
Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je viens de terminer mon tout premier site (c'est la première fois que je touche au codage), et je rencontre un problème sur mon formulaire de contact, qui me fait une erreur 404 au moment de l'envoie du mail.
Je pense que j'insère mal le php au html, et il y a sûrement des erreurs de codages...
D'ailleurs, le php ne s'affiche pas en couleur.

Pourriez-vous s'il vous plaît, y jeter un oeil ... ce serait vraiment super.
(Je travail sur Atom et je suis hébergé chez Hostinger)

Voici mes codes :
 <!-- Contact -->
     <section id="contact" class="four">
      <div class="container">

       <header>
        <meta charset="utf-8">
        <h2>Contactez-moi</h2>
       </header>

        <p>texte...</p>

        <?php
        if($_POST) {

        $message=$_POST['name'];
        $expediteur .=$_POST['email'];
        $message .=$_POST['message'];

        mail("contact@thibaultcaillaud.com", "sujet du courrier", $message, "From: '.$expediteur.") ;

        }
        ?>

       <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
        <div class="row">
         <div class="col-6 col-12-mobile"><input type="text" name="name" placeholder="Nom, prénom" /></div>
         <div class="col-6 col-12-mobile"><input type="text" name="email" placeholder="Email" /></div>
         <div class="col-12">
          <textarea name="message" placeholder="Message"></textarea>
         </div>
         <div class="col-12">
          <input type="submit" value="Envoyer le message" />


         </div>
        </div>
       </form>

      </div>
     </section>

   </div>


Merci de votre temps et de votre retour.
Bien à vous
Thibault

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Bonjour,

Quelques erreurs dans ton code...
Voici une fois corrigé

<?php
//Affichage des erreurs PHP ( à placer au début de ton fichier php )
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//récupération propre des variables AVANT de les utiliser
$name = !empty($_POST['name']) ? $_POST['name']: NULL;
$expediteur = !empty($_POST['email']) ? $_POST['email']: NULL;
$message = !empty($_POST['message']) ? $_POST['message']: NULL;

if($name && $message) {
	$to = "contact@thibaultcaillaud.com";
	$subject = "sujet du courrier";
	
	// Always set content-type when sending HTML email
	$headers = "MIME-Version: 1.0" . "\r\n";
	$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
	// More headers
	$headers .= 'From: '.$expediteur. "\r\n"; // Attention... certains hébergeurs n'autorisent que des from provenant du même domaine que ton site web !
	
	
	
	if(mail($to, $subject, $message,$headers)) {
		echo "Mail envoyé";
	}else{
		echo " Erreur lors de l'envoi du mail";
	}

}
?>
 
 <!Doctype html>
 <html>
	<!-- 
	Le reste de ton code....
	...
	-->
	
	
 <!-- Contact -->
<section id="contact" class="four">
	<div class="container">

		<header>
			<meta charset="utf-8">
			<h2>Contactez-moi</h2>
		</header>

		<p>texte...</p>


		<form method="post" action="" method="post">
		  <div class="row">
			<div class="col-6 col-12-mobile">
			  <input type="text" name="name" placeholder="Nom, prénom" />
			</div>
			<div class="col-6 col-12-mobile">
			  <input type="text" name="email" placeholder="Email" />
			</div>
			<div class="col-12">
			  <textarea name="message" placeholder="Message"></textarea>
			</div>
			<div class="col-12">
			  <input type="submit" value="Envoyer le message" />
			</div>
		  </div>
		</form>

	</div>
 </section>

</div>


Et au passage, quelques conseils pour tes futurs scripts
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
0
Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci pour ce retour.
Je viens d'essayer et les codes php ne s'affiche pas en couleur... comme si ATOM ne reconnaissait pas.

Ensuite au niveau du site, quand j'envoie le mail, cela à pour effet de rafraîchir mon site et de me changer tous les "é" ou "à" en caractères spéciaux.

Qu'en pensez vous?
Merci de votre temps.
Thibault
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Bonjour,
Pour ce qui est de la coloration syntaxique.... ça n'a rien à voir avec un souci sur le langage de programmation PHP mais une configuration de ton IDE ( Atom ) . ça ne sera donc pas traité sur ce forum.
Perso, Notepad++, Netbeans, Visual Studio Code sont, à mon avis de bien meilleurs IDE pour du dev php.... (mais ce n'est que mon avis )

Puis :

Ensuite au niveau du site, quand j'envoie le mail, cela à pour effet de rafraîchir mon site

Et oui... c'est comme ça que ça marche un formulaire...,


et de me changer tous les "é" ou "à" en caractères spéciaux.

Pour ce qui est de ton souci de caractères accentués, cela vient de l'encodage de tes fichiers...
commence par ça :
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
0
Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci de ton aide, je vais y regarder. Par contre j'imagine que malgré cela je devrais quand même recevoir le mail non? Car ça ne marche toujours pas. :-/
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Tu ne reçois pas de mail... ok ...mais as tu quelque chose qui s'affiche sur ta page ?
Vois tu le résultat du echo "Mail envoyé" ?
Si oui.. mais que tu ne reçois rien... regarde bien le commentaire que j'ai mis dans ton code....
0
Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Oui j'ai bien vérifié et je n'ai rien du tout, pas d'echo, pas de mail. Juste la page qui se rafraîchit...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Twibault Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Ton fichier se nomme comment ??
C'est bien un fichier .php ? ( pas .html !! )
0