Voilà mon souci, j'avais fais un formulaire de contact pour mon site perso et j'ai décidé de le sécuriser en mettant la vérification d'adresse e-mail.
Le souci est qu'il me vérifie l'écriture de l'adresse correctement, mais qu'elle que soit l'adresse rentrée lors de la vérification du domaine mon script m'affiche le message d'erreur que j'ai configuré (adresse mail non valide).
J'ai bien tenté de modifier mon script surtout la partie avant le Doctype, j'ai placé des commentaires à divers endroits pour localiser le problème mais en vain.
Modifié par Ripper Roo (21 Feb 2008 - 12:59)
Le souci est qu'il me vérifie l'écriture de l'adresse correctement, mais qu'elle que soit l'adresse rentrée lors de la vérification du domaine mon script m'affiche le message d'erreur que j'ai configuré (adresse mail non valide).
J'ai bien tenté de modifier mon script surtout la partie avant le Doctype, j'ai placé des commentaires à divers endroits pour localiser le problème mais en vain.
<?PHP
session_start();
$_SESSION['nsession'] = $_POST['nformu'];
$_SESSION['mailsession'] = $_POST['mailformu'];
$_SESSION['objetsession'] = $_POST['objetformu'];
$_SESSION['areasession'] = $_POST['areaformu'];
// Fonction de vérification validité du mail
function valid_email($email)
{ $email = strtolower(trim($email));
$car_dom = '[-\.a-z0-9]{0,62}[a-z0-9]';
$car_ext = '[a-z]{2,63}';
$user = '[-\.a-z0-9_]{1,31}';
$dom = $car_dom.'\.'.$car_ext;
$motif = '^'.$user.'@('.$dom.')$';
//Test de l'écriture
if(ereg($email,$motif))
{ $test = checkdnsrr($motif,'MX');
}
return $test;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div id="pere">
<div id="ban">
<div id="haut">
</div>
<div id="menu">
</div>
</div>
<div id="center">
<?PHP
include ('includes/menugch1.php');
?>
<div id="ctr">
<h1>-- Formulaire --</h1>
<h2>Afin d'entrer en relation avec nous, veuillez remplir ce formulaire.</h2>
<br />
<div id="messmail">
<?PHP
str_replace("\r",'',$_POST['mailformu']);
str_replace("\n",'',$_POST['mailformu']);
if (isset($_POST['submit']))
{ if (!empty($_POST['nformu']) &&
!empty($_POST['mailformu']) && valid_email($_POST['mailformu']) &&
$_POST['objetformu'] != '-- Sélectionner --' &&
!empty($_POST['areaformu']))
{ $headers = "From: ".$_POST['mailformu']."\n";
$headers.="X-Sender: ".$_POST['mailformu']."\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Return-Path: <".$_POST['mailformu'].">\n";
$headers .= "Content-Type: text/html;charset=iso-8859-1\n";
$mail = 'mon adresse mail';
$sujet = 'mail de dol-celeb.com';
$corps = $_POST['nformu'].' <br />'.$_POST['objetformu'].'<br /> '.$_POST['areaformu'];
$test = mail($mail,$sujet,$corps,$headers);
if($test == 1)
{ echo'<span class="good">Votre mail a bien été envoyé, nous vous répondrons dans un delai le plus court possible</span>';
}
else
{ echo'<span class="notgood">L\'envoie du mail a échoué, veuillez recommencer ultérieurement.</span>';
}
}
elseif (!valid_email($_POST['mailformu']))
{ echo'<p class="notgood">L\'adresse e-mail n\'est pas valide.</p>';
}
else
{ echo'<p class="notgood">Les champs signalés par un astérisque sont incorrects.</p>';
}
}
?>
</div>
<br />
<div id="formulaire">
<form method="post" action="formulaire.php" >
<fieldset><legend>Civilité et coordonnées</legend>
<br />
<p><label>Nom/Pseudo : </label>
<input type="text" id="nformu" name="nformu" size="20" maxlength="30"
value="<?PHP echo $_SESSION['nsession']; ?>" />
<?PHP
if(empty($_SESSION['nsession']))
{ ?> <span class="notgood">*</span>
<?PHP } ?>
</p>
<br />
<p><label>e-mail : </label>
<input type="text" id="mailformu" name="mailformu" size="30" maxlength="50" class="calage"
value="<?PHP echo $_SESSION['mailsession']; ?>" />
<?PHP
if(empty($_SESSION['mailsession']) || !valid_email($_POST['mailformu']))
{ ?> <span class="notgood">*</span>
<?PHP } ?>
</p>
</fieldset>
<fieldset>
<legend>Votre demande :</legend>
<br />
<br />
<p><label>Objet :</label>
<select name="objetformu" id="objetformu">
<option selected="selected">
<?PHP
if (isset($_POST['objetformu']))
{ echo $_SESSION['objetsession'];
}
else
{ echo'-- Sélectionner --';
}
?>
</option>
<option>Remarque/Suggestion sur le site</option>
<option>Demande de partenariat</option>
<option>Collaborer au site (articles, dessins, fanfics,...)</option>
<option>A propos du forum</option>
<option>Autre</option>
</select>
<?PHP
if(empty($_SESSION['objetsession']) || $_SESSION['objetsession'] == '-- Sélectionner --')
{ ?> <span class="notgood">*</span>
<?PHP } ?>
</p>
<br />
<br />
<p><label>Votre texte : </label>
<?PHP
if(empty($_SESSION['areasession']))
{ ?> <span class="notgood">*</span>
<?PHP } ?>
<br />
<textarea cols="62" rows="8" id="areaformu" name="areaformu"><?PHP echo $_SESSION['areasession']; ?></textarea>
</p>
</fieldset>
<br />
<div id="button">
<input type="submit" id="submit" name="submit" value="envoyer" class="button" />
</div>
</div>
</form>
</div>
</div>
<div id="pied">
<div id="bg">
</div>
</div>
</div>
</body>
</html>
Modifié par Ripper Roo (21 Feb 2008 - 12:59)