[PHP] Vérification de la validiter d'un mail

Fermé
Alex.css0 - 31 déc. 2007 à 04:37
 Alex.css - 31 déc. 2007 à 23:35
Bonjour !
J'ai déjà eu un problème dans le passé en PHP et puisque la communauté de Comment Ça Marche m'ont très bien aider, j'ai décider de revenir posé une fois de plus mon problème.

J'ai commencé à faire un site. Jusque là, rien de méchant. Mais là, on a eu l'idée de faire un formulaire de contact pour contacter les webmasters pour des suggestions et des commentaires.

Alors voilà. J'ai réussi à faire:
le formulaire HTML (bien entendu ^^ )
La vérification si le titre du message est entrer
Le retrait des code HTML, et pour savoir qu'il y en avait, je les remplaces par [ et ] .
Bref, tout fonctionne pour l'envoi du e-mail .

Mais bon. Pour mieux satisfaire les besoins, j'ai décider de demander dans ce même formulaire l'adresse e-mail de la personne.
Bah, pas de problème, tout fonctionne, mais je veux maintenant vérifier si le e-mail est valide.

Mais il y a un obstacle de taille...
Le PHP (ou la majorité) est séparé du html ... Donc il y a contact.php et contact2.php ...
contact1.php
<?php
// Erreur ST-0189 = page_header.php manquant
// Erreur ST-1294 = _index.php dans theme/themeactuel/ manquant
// Erreur ST-01819 = page_header.php dans theme/themeactuel/ manquant
// ST-26189 = page_bas dans theme/themeactuel/ manquant
include("/home2/alexcss/public_html/svn/snet-tech/configuration/configuration.php");

function checkEmail($email)
 {
if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email))
{
 return FALSE;
 }

list($Username, $Domain) = split("@",$email);

if(getmxrr($Domain, $MXHost))
 {
 return TRUE;
 }
 else
 {
if(fsockopen($Domain, 25, $errno, $errstr, 30))
 {
return TRUE;
}
 else
{
 return FALSE;
 }
}
} 

if($_GET['sendmail'] == "vrai")
{
 if($_POST['titre'] == "")
 {
 }
 else
 {
  if(strstr($TITRE_EMAIL, 'pils'))
  {
  }
  else
  {
  $email = $_POST['email_retour'];
  if(checkEmail($email) == FALSE)
  {
  }
  else
  {
   $TITRE_EMAIL = str_replace('pils', 'à ne pas lire ', $_POST['titre']);
   $CONTENU_EMAIL = str_replace('<', '[',str_replace('>', ']', $_POST['contenu']));
   $CONTENU_EMAIL = "Répondre à :".$CONTENU_EMAIL;
   $REPONSE = $_POST['email_retour'];
   $DESTINATAIRE = "alex.css@hotmail.com";
   $ENVOYEUR = "From: Snet-Tech Suggestion System <alex.css@hotmail.com>";
  if(mail($DESTINATAIRE, $TITRE_EMAIL, $CONTENU_EMAIL, $ENVOYEUR, $REPONSE))
  {
  ?>
  <script language="javascript">
  document.location.href='contact.php?sendmail=reussi'
  </script>
  <?php
  }
  else
  {
  
  }
 }
 }
 }
}


$PAGE_titre = "Nous Joindre";
if(file_exists("page_header.php"))
{
 include("page_header.php");
}
else
{
 $code_erreur = "ST-0189";
?>
Désolé, le site est temporairement indisponible. Si le problème persiste, contactez les administrateurs.<br />
<font face="Courier New"><u><b>Code(s) d'erreur(s) : </b></u><br />
<?php echo "<li>".$code_erreur."</li>"; ?><br />
</font>
<?php
}
$THEME_site_index_php = "theme/".$THEME['Actuel']."/contact.php";
if(file_exists($THEME_site_index_php))
{
 include($THEME_site_index_php);
}
else
{
 $code_erreur = "ST-1294";
?>
Désolé, le site est temporairement indisponible. Si le problème persiste, contactez les administrateurs.<br />
<font face="Courier New"><u><b>Code(s) d'erreur(s) : </b></u><br />
<?php echo "<li>".$code_erreur."</li>"; ?><br />
</font>
<?php
}
if(file_exists("page_bas.php"))
{
 include("page_bas.php");
}
else
{
 $code_erreur = "ST-02189"; 
}
?>


contact2.php
<!-- Formulaire d'envoi e-mail à Snet-Tech pour les suggestions ;-) -->
  </td>
   <td valign="top"cellspacing="0"cellpadding="0">
    
	<div id="CORPS">
	 <table width="756"cellpadding="0"cellspacing="0">
      <tr>
       <td class="CONTENU">
         <h4>Nous Joindre || Contact Us</h4>
		 <form action="contact.php?sendmail=vrai" method="POST" name="SENDMAIL">
		  <p>
		  <label for="titre">Titre &middot; Title</label><br />
		  <input type="text"maxlength="255"name="titre"id="titre" /><br />
		  <label for="reponsea">Votre E-Mail &middot Your email</label><br />
		  <i>Il est important que nous sachions l'e-mail de réponse afin de pouvoir répondre à votre commentaire ou à votre suggestion ! C'est obligatoire !</i><br />
		  <i>We need your e-mail adress to answer your suggestion or comment. It's not an option !</i><br />
		  <input type="text"name="email_retour"id="reponsea" /><br />
		  <label for="contenu">Suggestion Content:</label><br />
		  <textarea cols="45"rows="17"name="contenu"id="contenu"></textarea><br />
		  <input type="submit"value="Envoyer || Send" /> &ndash; <input type="reset"value="Annuler || Reset" /><br /><br />
		  Tout les sujets hors contextes ne seront pas lu !<br />
		  All subject without any link with Snet-Tech won't be read !
	   </td>
	  </tr>
	 </table>
	</div>
	
   </td>
  </tr>
  <tr>
   <td> <!-- On passe au copyright :-) -->
   
<?php
  if($_GET['sendmail'] == "reussi")
  {
 ?>
 
  <script language="javascript">
  document.location.href="contact.php?sendmail=vrai#MailSent"
  </script>
    </td>
   <td valign="top"cellspacing="0"cellpadding="0">
    
	<div id="CORPS">
	 <table width="756"cellpadding="0"cellspacing="0">
      <tr>
       <td class="CONTENU"id="MailSent">
         <b id="MailSent">Mail envoyé avec succès ! <br />
		 Vous allez être redirigé dans quelques secondes...<br />
		 E-Mail sent with success !<br />
	     You'll be redirected in few seconds...
		 <script language="javascript">
		 setTimeout("document.location.href='contact.php'", 5000);
		 </script></b>
	   </td>
	  </tr>
	 </table>
	</div>
	
   </td>
  </tr>
  <tr>
   <td> <!-- On passe au copyright :-) -->
 <?php
 }

 if($_GET['sendmail'] == "erreur")
 {
 ?>
    </td>
   <td valign="top"cellspacing="0"cellpadding="0">
    
	<div id="CORPS">
	 <table width="756"cellpadding="0"cellspacing="0">
      <tr>
       <td class="CONTENU">
        <b id="MailSent">Erreur de l'envoi du e-mail !<br />
		Error while sending the e-mail !<br /></b>
	   </td>
	  </tr>
	 </table>
	</div>
	
   </td>
  </tr>
  <tr>
   <td> <!-- On passe au copyright :-) -->
<?php
}
?>


Note: Il est également traduit en anglais, car le site est anglais-français.

Merci d'avance à ceux qui seront m'aider à résoudre ce problème !

Cordialement,
Alex.css
A voir également:

2 réponses

Linblow Messages postés 11 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 3 novembre 2009 25
31 déc. 2007 à 08:19
Je te conseille de tout faire une seule page plutôt qu'en trois : S

Sinon tu relieras mal ton code source.
1
Ah non.
J'ai résolu le problème et ça fonctionne :-)

Merci quand même, et je n'ai pas eu à faire en un seul fichier ^^
0