Probleme sur formulaire contact

Résolu
Bonjour à tous,
J'ai pris un formulaire de contact sur le site de RAD ZONE (issu du générateur). Tout est correct jusqu'à l'envoi du courrier.
En effet le mail n'est jamais envoyé.
J'ai regarder sur le site de RAD ZONE si je pouvais voir ou je m'étais trompé mais je n'y parviens pas. De plus je n'arrive pas à m'enregistrer sur son site , c'est pourquoi je demande de l'aide ici.

Merci d'avance

Voici le programme (les e-mails ont été remplacé par des faux pour l'occasion)

Avant la partie Head et HTML

<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['champ3'] = $_POST['champ3'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];

//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {					

// Addresse de réception du formulaire
$email_dest = "test2@gmail.com";
$sujet = "Demande de dessin";
$entetes ="MIME-Version: 1.0 \n";
	$entetes .="From: Cécile<test@hotmail.com>\n";
	$entetes .="Return-Path: Cécile<test@hotmail.com>\n";
	$entetes .="Reply-To: Cécile<test@hotmail.com>\n";
	$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
	$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre prénom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre téléphone = " . $_SESSION['champ3'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre Email = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre demande = " . $_SESSION['zone_texte1'] . "</font><br>\n";
					

					// Fin du message HTML
					$fin = "</body></html>\n\n";
					
					$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;


					// Send the e-mail
					if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {

                    // Rediriger vers la page de remerciement
                    header("Location:merci.html");
                    exit();
                  } // Fin else
			    } // Fin du if ($flag_erreur == 0) {
			} // Fin de if POST
?>


Dans la partie Head

	
<script language="JavaScript">


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Veuillez saisir votre nom")
return false
} 

if (document.mail_form.champ2.value == "") {
alert("Veuillez saisir votre prénom")
return false
} 

if (document.mail_form.zone_email1.value == "") {
alert("Veuillez saisir votre Email")
return false
}

invalidChars = " /:,;'"

for (i=0; i < invalidChars.length; i++) {	// does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.value.indexOf("@",1)			// there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) {	// and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos)

if (periodPos == -1) {					// and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.value.length)	{		// must be at least 2 characters after the 
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_texte1.value == "") {
alert("Veuillez saisir votre demande")
return false
} 

} // Fin de la fonction

</script>



Dans la partie Body

<form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
					  <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Formulaire
						de contact</strong></font></div><br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
						  <tr>
							<td height="16"><div align="center">
					  <font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
					if ($erreur_champ1) {
						  echo(stripslashes($erreur_champ1));
						  } else {
					if ($erreur_champ2) {
						  echo(stripslashes($erreur_champ2));
						  } else {
					if ($erreur_champ3) {
						  echo(stripslashes($erreur_champ3));
						  } else {
					if ($erreur_email1) {
						  echo(stripslashes($erreur_email1));
						  } else {
					if ($erreur_texte1) {
						  echo(stripslashes($erreur_texte1));
						  } else {
					} // Fin du else...
					} // Fin du else...
					} // Fin du else...
					} // Fin du else...
					} // Fin du else...
					?>
						</strong></font>
						</div></td>
						  </tr>
						</table>
					<p align="center"></p><table width="566" border="0" align="center"><tr>
						  <td width="140"><div align="right"><font face="Verdana" size="2">Votre nom</font></div></td>
						  <td align="center" valign="middle" width="30">
						  <?php
						  if ($erreur_champ1) {
						  echo($icone);
						  }
						  ?>
						  </td>
						  <td><input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>"></td>
						</tr></table><table width="566" border="0" align="center"><tr>
						  <td width="140"><div align="right"><font face="Verdana" size="2">Votre prénom</font></div></td>
						  <td align="center" valign="middle" width="30">
						  <?php
						  if ($erreur_champ2) {
						  echo($icone);
						  }
						  ?>
						  </td>
						  <td><input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>"></td>
						</tr></table><table width="566" border="0" align="center"><tr>
						  <td width="140"><div align="right"><font face="Verdana" size="2">Votre téléphone</font></div></td>
						  <td align="center" valign="middle" width="30">
						  <?php
						  if ($erreur_champ3) {
						  echo($icone);
						  }
						  ?>
						  </td>
						  <td><input name="champ3" type="text" value="<?=stripslashes($_SESSION['champ3']);?>"></td>
						</tr></table><table width="566" border="0" align="center"><tr>
						  <td width="140"><div align="right"><font face="Verdana" size="2">Votre Email</font></div></td>
						  <td width="30" align="center" valign="middle">
						  <?php
						  if ($erreur_email1) {
						  echo($icone);
						  }
						  ?>
						  </td>
						  <td><input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>"></td>
						</tr></table><table width="566" border="0" align="center"><tr>
						  <td width="140" valign="top"><div align="right"><font face="Verdana" size="2">Votre demande</font></div></td>
						  <td width="30" align="center" valign="top">
						  <?php
						  if ($erreur_texte1) {
						  echo($icone);
						  }
						  ?>
						  </td>
						  <td><textarea name="zone_texte1" cols="45" rows="10"><?=stripslashes($_SESSION['zone_texte1']);?></textarea></td>
						</tr></table><table width="566" border="0" align="center"><tr>
						<td valign="top"><div align="center"> 
							  <input type="reset" name="Reset" value=" Effacer ">
							    
							  <input type="submit" name="envoi" value="Envoyer">
							</div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form>


9 réponses

  1. encore merci coco

    comme je l'ai dit plus haut, j'ai finalement trouver ce qu'il me fallait.
    Comme quoi si j'avais chercher un peu plus je n'aurai pas eu à demander de l'aide ^^
    1. apparemment, ton hébergeur te permet d'envoyer des mails (peut-être une option à activer)

      tu devrais essayer sur un script simple un truc de ce genre

      testmail.php
      <?php
      
       ini_set('display_errors', 1);
       error_reporting(E_ALL);
      
       $to = " mon mail @ chez mon fournisseur";
       $subject = "YO!";
       $body = "Test,\n\n RECU !";
       if (mail($to, $subject, $body)) {
         echo("<p>Message envoyé!</p>");
        } else {
         echo("<p>pb !...voir erreur</p>");
        }
      
      ?>
      1. Dsl je ne savais pas qu il en fallait un.

        J'ai heberger mon site sur hostinger(formule gratuite)

        voila les caracteristiques:

        Hébergement Web Gratuit:

        2000 Mo d'espace disque
        100 Go (100.000 Mo) de bande passante
        Héberger un nombre illimité de noms de domaine
        Panneau de contrôle d'hébergement cPanel
        Pas de publicités ou bannières
        Constructeur de site Web facile à utiliser
        Auto Installer (Joomla, Wordpress, etc.)
        Services d'E-mail (IMAP/POP3/Webmail)
        PHP et base de données MySQL supporté
        Activation instantanée du compte

        Fonctionnalités avancées:

        Console Web SSH
        Éditeur de zone DNS
        Pages d'erreur personnalisées
        Cron jobs supporté
        Possibilité d'éditer les enregistrements MX
        Générer des sauvegardes complètes
        Gestionnaire d'IP nier
        Dossiers protégés par mot de passe
        Noms de domaines parqués
        Importation de la base de données et du

        Caractéristiques PHP:

        PHP Versions 5.2, 5.3 et 5.4
        Zend Optimizer
        IonCube loaders
        Curl et Curl SSL
        Envoi de fichiers supporté
        Fonction PHP mail() et Sendmail
        Fonction PHP fopen() et Sockets
        Extension mysqli
        safe_mode = off, allow_url_fopen = on
        SQLite, GD, Mcrypt, Pear supporté

        Caractéristiques MySQL:

        MySQL Version 5.1
        Espace disque MySQL illimité!
        2 bases de données MySQL
        phpMyAdmin supporté
        Disque SSD pour le stockage
        Extension MysqLi activé
        Moteur de stockage MyISAM
        PDO et PDO MySQL supporté
        SQLite supporté
        Powered by cloud computing

        Je vois qu'il y a une fonction sendmail.
        Est il déja installé ou faut il que je l'installe aussi ?

        Je suis désolé mais je suis très limité en php
        1. la commande de ton script php que tu utilises: mail($email_dest,$sujet,$sortie,$entetes)
          doit utiliser un programme d'envois de mail qui est normalement défini dans php.ini du genre sendmail = /usr/bin/sendmail

          tu peux essayer d'autre logiciel de mail plus léger à installer sur ton serveur, mais tu en as besoin d'un ! sinon tu ne peux rien envoyer,

          Ton serveur tourne sur Apache ? ou autre ? précise ?
          1. sendmail est sensé marcher avec ce code ? Ca à l'air d'un système complet.

            Je pensais juste arriver à corriger ce code étant donné qu'il est déjà implanté.
            J'ai juste le problème avec l'envoi du mail.
            De plus c'est pour un petit site, je ne pense pas avoir besoin de quelque chose de très élaboré.
            1. je ne connais pas du tout sendmail
              J'ai trouver un tuto, j'essai de l'installer et je mettrai l'error log (je suis totalement novice php)

              et merci pour la reponse :)