Problème formulaire - PHP - Programmation
Marsh Posté le 25-08-2006 à 22:15:43
ça ressemble a du copier coller pris sur un tuto douteux
if (isset($HTTP_POST_VARS['v_adresse_email']) and validate_email($Adresse_email))
=> if (isset($HTTP_POST_VARS['v_adresse_email']) and validate_email($HTTP_POST_VARS['v_adresse_email']) )
echo "mail ok";
header("Location: envoyer.php" );
=> tu vires le echo
et maintenant on utilise $_POST et pas $HTTP_POST_VARS
Marsh Posté le 25-08-2006 à 22:21:07
subtil a écrit : ça ressemble a du copier coller pris sur un tuto douteux |
Perso je l'ai pas pris sur un tuto spécial, c'est une source qu'il y avait à l'école (possible Dreamweaver !)
Marsh Posté le 25-08-2006 à 22:59:30
isset($HTTP_POST_VARS['v_adresse_email']) and validate_email($Adresse_email)
normal, quand tu appelles validate_email(), $adresse_email n'est pas encore défini. Tu dois appeler validate_email() sur $HTTP_POST_VARS['v_adresse_email']
Marsh Posté le 25-08-2006 à 23:28:42
axelazerty a écrit : isset($HTTP_POST_VARS['v_adresse_email']) and validate_email($Adresse_email) |
Désolé, je suis pas très fort en PHP et je ne comprends pas vraiment ce que tu veux dire par là (ouais je sais je suis "noob" lol). Pourrais-tu m'expliquer un peu autrement stp.
A subtil : après avoir mis ta ligne, il y a une autre erreur
Fatal error: Call to undefined function: checkdnsrr() in c:\program files\easyphp1-8\www\page\envoyer_email.php on line 13
Marsh Posté le 25-08-2006 à 23:33:36
dans ton if() tu appelles validate_email(). Le paramètre est $Adresse_email. Or, cette variable $Adresse_email n'est définie qu'à la ligne suivante! donc forcément, tu appelles validate_email() sur une variable qui n'existe pas encore.
pour : checkdnsrr(), danhs le script envoyer_email.php, cette fonction est appelé, mais elle n'a pas l'air d'exister.
Marsh Posté le 29-08-2006 à 10:09:13
pareil, pas besoin de mettre tes douze pages de code.
Commence par expliquer ton besoin, on essayera de te guider, pas de faire ton script à ta place.
Et si tu as vraiment besoin d'afficher du code, utilise les bonnes balises, ça évitera d'avoir un gros pâté illisible
Marsh Posté le 25-08-2006 à 21:54:11
Bonjour, j'ai quelques soucis avec un formulaire PHP.
Mon formulaire comprends "3 pages" : l'une avec le formulaire même, l'une avec les fonctions pour envoyer sur l'e-mail du destinaire et la dernière qui est une page de confirmation de l'envoi qui retourne automatiquement sur le formulaire après 3 secondes.
Voici le code de la page du formulaire
contact.php
<form method="post" action="Envoyer_Email.php">
<table width="100%" border="0">
<tr>
<td width="15%" valign="top"><font size="2">Nom : </font></td>
<td width="85%"><font size="2">
<input type="text" name="v_nom" id="v_nom" size="20">
</font></td>
</tr>
<tr>
<td valign="top"><font size="2">Prénom : </font></td>
<td><font size="2">
<input type="text" name="v_prenom" id="v_prenom2" size="20">
</font></td>
</tr>
<tr>
<td valign="top"><font size="2">Adresse : </font></td>
<td><font size="2">
<input type="text" name="v_adresse" id="v_adresse2" size="30">
</font></td>
</tr>
<tr>
<td valign="top"><font size="2">NPA : </font></td>
<td><font size="2">
<input type="text" name="v_npa" id="v_npa2" size="10">
</font></td>
</tr>
<tr>
<td valign="top"><font size="2">Localité : </font></td>
<td><font size="2">
<input type="text" name="v_localite" id="v_localite2" size="30">
</font></td>
</tr>
<tr>
<td valign="top"><font size="2">Adresse e-mail : </font></td>
<td><font size="2">
<input type="text" name="v_adresse_email" id="v_adresse_email2" size="30">
</font></td>
</tr>
<tr>
<td valign="top"><font size="2">Remarque : </font></td>
<td><font size="2">
<textarea name="v_remarque" id="textarea" cols=40 rows=7></textarea>
</font></td>
</tr>
<tr>
<td valign="top"><font size="2"> </font></td>
<td><font size="2">
<input name="submit" type="submit" value="Envoyer">
</font></td>
</tr>
</table>
</form>
Envoyer_Email.php
<?
function validate_email($Adresse_email){
$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
if(eregi($exp,$Adresse_email)){
if(checkdnsrr(array_pop(explode("@",$Adresse_email)),"MX" )){
return true;
}else{
return false;
}
}else{
return false;
}
}
$Nom=$HTTP_POST_VARS['v_nom'];
$Prénom=$HTTP_POST_VARS['v_prenom'];
$Adresse=$HTTP_POST_VARS['v_adresse'];
$Npa=$HTTP_POST_VARS['v_npa'];
$Localité=$HTTP_POST_VARS['v_localite'];
if (isset($HTTP_POST_VARS['v_adresse_email']) and validate_email($Adresse_email))
{
$Adresse_email=$HTTP_POST_VARS['v_adresse_email'];
}
else
{
$Adresse_email=null;
}
$Remarque=$HTTP_POST_VARS['v_remarque'];
$contenu="demande d'information de la part de\n";
$contenu.= "nom : ".$Nom."\n";
$contenu.= "prenom : ".$Prénom."\n";
$contenu.= "adresse : ".$Adresse."\n";
$contenu.= "npa : ".$Npa."\n";
$contenu.= "localite : ".$Localité."\n";
$contenu.= "adresse_email : ".$Adresse_email."\n";
$contenu.= "remarque : ".$Remarque."\n";
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$headers .= "From: \"".$Adresse_email."\" <".$Adresse_email.">\n \r\n\r\n";
mail("monemail@hotmail.com", "demande d'information", $contenu, $headers);
echo "mail ok";
header("Location: envoyer.php" );
?>
envoyer.php
<script language="JavaScript">
function redirect() {
window.location="../page/formreservation2.php"
}
setTimeout("redirect()",3000); // delai en millisecondes
</script>
L'email a bien été envoyé.
<p>Retour à la page de réservation</p>
Lors de l'envoi du formulaire, voici ce que m'affiche le navigateur :
Notice: Undefined variable: Adresse_email in c:\program files\easyphp1-8\www\page\envoyer_email.php on line 51
mail ok
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\page\envoyer_email.php:51) in c:\program files\easyphp1-8\www\page\envoyer_email.php on line 111
les lignes bleues sont les lignes "qui posent problème".
Please, help me !