Je ne vois pas d'ou vien l'erreur

Fermé
micka - 16 sept. 2008 à 15:02
 toto - 16 sept. 2008 à 15:18
Bonjour,

j'essaye d'envoyer un mail par le biais d'un code php.

VOICI MON CODE:


<html>
<body>
<form method="post" action="contact.php">
Email: <input name="email" type="text"><br>
Message:<br>
<textarea name="message" rows="15" cols="40"></textarea><br>
<input type="submit">
</form>

<?php
$adresse = "mickael.mickael@supinfo.com";
$sujet = "contactez moi";
$mail = $_REQUEST["email"];
$message = $_REQUEST["message"];
$headers = "From: $mail";
//ini_set(string varname , string newvalue);
$sent = mail($adresse, $sujet, $message, $headers);

if($sent)
{
echo 'ca marche!!!';
}
else
{
echo 'ca marche pas!!';
}
?>

</body>
</html>

J'OBTIENS LES ERREURS SUIVANTES:
Notice: Undefined index: email in C:\Program Files\EasyPHP 2.0b1\www\e-mailing\env_mail.php on line 14

Notice: Undefined index: message in C:\Program Files\EasyPHP 2.0b1\www\e-mailing\env_mail.php on line 15

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\e-mailing\env_mail.php on line 18

pouvez-vous m'aider??

Merci d'avance!!!

3 réponses

Bonjour

D'après la façon dont ton code est écrit, tu sembles croire qu'en plaçant le traitement du formulaire après le formulaire, il ne sera exécuté qu'après. C'est faux. Il sera exécuté après que le formulaire ait été envoyé au client, mais avant que le client n'ait répondu.
Donc lors d'un premier appel, $_REQUEST["email"] et $_REQUEST["message"] ne sont pas encore définis, d'où les deux erreurs 'undefined index'.

En fait, tu devrais :
utiliser ^_POST au lieu de $_REQUEST
au début du script, vérifier si $_POST["email"] et $_POST["message"] existent avec la fonction isset
ensuite seulement :
s'ils existent, c'est que le formulaire a été rempli, tu peux envoyer ton email
s'ils n'existent pas ou qu'ils sont incorrects, envoyer le formulaire
0
$_POST, pas ^_POST bien sûr
0
XxTitxX Messages postés 1176 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 30 août 2012 246
16 sept. 2008 à 15:07
BOnjour,

Tu as, apparemment, mis en serveur SMTP localhost.

DOnc il faut avoir un serveur SMTP sur la même machine que le serveur Web, à moins que tu mettes un autre SMTP genre ton FAI ...
-1