Probleme de script avec formulaire phpRecherc

basaba - 26 janv. 2008 à 01:19
 Alain42 - 27 janv. 2008 à 13:47
Bonjour,
j'ai un petit probleme avec mon formulaire en php.

voici le code pour le traitement_formulaire.php

[cpp]<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = "monadresse@hotmail.com";

// copie ? (envoie une copie au visiteur)
$copie = "oui";

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};

// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"'",$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);

// envoi du mail
if (($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
/cpp

et voici pour le contact.htm

[cpp]<html>
<head>
<title></title>
</head>

<body>
<form id="contact" method="post" action="http://......be/traitement_formulaire.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
</fieldset>

<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
</fieldset>

<div style="text-align:center;"> <input type="submit" name="envoi" value="Envoyer le formulaire !"/></div>
</form>


</body>

</html>/cpp

Et voicl 'erreur:

[cpp]Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 <monadresse@hotmail.com>... we do not relay <monadresse@hotmail.com> in D:\www\.....be\.....\traitement_formulaire.php on line 101

L'envoi du mail a échoué, veuillez réessayer SVP.
/cpp
ou alors, il me met impssible d'afficher la page.
je ne comprend rien du tout.

Pouvez-vous m'aider à régler se petit probleme svp.
Merci
A voir également:

7 réponses

aidez moi svp
0
Bonjour,

tu as un pb à la troisième ligne des str_replace:

// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""","'",$message);


d'abord pourquoi faire deux fois la même chose ligne 1 et 2 changer les ' en ' ?
ce qui ne fais rien d'ailleurs.

et en ligne 3 mettre des " à la place des ' ?

et chez moi à partir de la ligne 3 mon éditeur détecte une erreur.

essayes comme ça:
$message = str_replace('"',"'",$message);


pour créer ton code utilise Notepad++ (simple et gratuit) tu verra il colorie le code et tu vois de suite les erreurs de syntaxe.

@lain
0
bbonjour,
j'ai fais les différente modif, et maintennant quand je clic sur "envoyer" pour envoyer mon formulaire,
il me met HTP 500 erreur interne au serveur
Donc il ne veut pas "ouvrir" la page traitement_formulaire.php

Merci de bien vouloir m'aider svp.
0
je refait des test, et maintenant, il m'indique que j'ai une erreur a la ligne 101:

if (mail($cible, $objet, $message, $headers))


quel est-elle?
0

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

Posez votre question
up
0
help me
0
Bonjour,

Un peut partout dans ton code tu as la même erreur:

};
Il ne doit pas y avoir de ; après la } d'une fonction ou d'une condition if(){ }else(){ }

le ; c'est seulement après une instruction.

Enlèves les partout où il y en a et réessayes.
0