Probleme sur formulaire contact

Résolu/Fermé
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 14 juil. 2013 à 18:08
 coco - 15 juil. 2013 à 00:06
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

tu as installé sendmail sur ton serveur ?
que dit l'error log ?
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
Modifié par ced3c le 14/07/2013 à 19:06
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
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
14 juil. 2013 à 20:35
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
14 juil. 2013 à 22:41
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
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
14 juil. 2013 à 23:33
J'ai pu trouver un site qui explique comment envoyé un mail simplement

https://a-pellegrini.developpez.com/tutoriels/php/mail/#L3.5

J'ai essayé et cela marche.
Je pense que ce sera suffisant pour mes petites ambitions ^^.

Merci coco d'avoir pris la peine de m'aider
0
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
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
15 juil. 2013 à 00:03
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
no pb
0