Probleme sur formulaire contact

Résolu
ced3c Messages postés 240 Statut Membre -  
 coco -
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. coco
     
    tu as installé sendmail sur ton serveur ?
    que dit l'error log ?
    0
  2. ced3c Messages postés 240 Statut Membre 5
     
    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 :)
    0
  3. ced3c Messages postés 240 Statut Membre 5
     
    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é.
    0
  4. coco
     
    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 ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ced3c Messages postés 240 Statut Membre 5
     
    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
    0
  7. coco
     
    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>");
      }
    
    ?>
    0
  8. ced3c Messages postés 240 Statut Membre 5
     
    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 ^^
    0