Mail en PHP presque résolu

Eléphanteau du PHP | 11 Messages

03 avr. 2008, 22:21

Bonsoir,

Je me permets de revenir une dernière fois j'espère pour enfin clôturer mon formulaire d'envoi mail en PHP.
Je sais que mon dernier est post est un peu borleli... c'est pourquoi, j'aouve celui-ci.

J'ai une toute petite erreur dans mon script, mais je ne vois vraiment pas quoi. Je vous demande une dernière fois un coup de main.
Voici le cript que j'ai :

Code : Tout sélectionner

<?php if ($_POST['message'] == "") { ?> <form name="envoiemail" id="envoiemail" method="post" action=""> <p>Votre nom <input name="nom" type="text" class="cellule" id="nom" /></p> <p>Votre email <input name="email" type="text" id="email" /></p> <p>Sujet de votre email <input name="sujet" type="text" id="sujet" /></p> <p>Message <br /><textarea name="message"></textarea></p> <p><input name="Submit" type="submit" onclick="MM_validateForm('nom','','R', 'email','','NisEmail','sujet','','R','textarea','','R');return document.MM_returnValue" value="Envoyer" /></p></form> <?php } else { mail("[email protected]", $_POST['sujet'], $_POST['message'],"From: ".$_POST['nom']."<".$_POST['email'].">"); ?> <p>Le message a bien été envoyé, merci.</p> <?php } ?>
A l'écran le formulaire apparaît bien, il envoie bie le mail, mais j'ai ceci qui s'affiche au dessus
Notice: Undefined index: message in c:\program files\easyphp1-8\www\formulaire_contact\form.php on line 1
J'espère que vous pourrez m'aidr, j'ai essayer pas mal de trucs mais j'y vois plus clair.

Un grand merci
Je sais qu'on ne sait jamais (Jean gabin)

ViPHP
ViPHP | 3300 Messages

03 avr. 2008, 23:08

une erreur de type notice n'est pas une erreur grave, il convient malgrès tout de la corriger. Pour la corriger il suffit la plupart du temps de lire le message d'erreur, ici il s'agit de undefined index ce qui fait référence à un index de tableau qui n'existerait pas. Et pour cause $_POST['message'] n'existe qu'à l'instant ou tu as posté ton formulaire et non pas sur le premier affichage.

Pour le corriger il suffit (et cela marche à chaque fois ou presque) de tester l'existence de cette varriable à l'aide de la fonction isset(): littéralement est ce que cette variable existe)

N'oublies pas que ton code est lu de manière humaine, cad dans l'ordre de lecture que l'on connait tous, de haut en bas et de gauche à droite et tout devrait aller comme sur des roulettes.
Fait du php depuis que ca existe ou presque :)

Eléphanteau du PHP | 11 Messages

04 avr. 2008, 08:50

Merci pour ta réponse, mais ca marche pas, en prévisualisation, je n'ai plus de message d'erreur, mais après l'envoi du message je recois ceci :
Warning: mail(): SMTP server response: 452 #4.3.1 queue full in c:\program files\easyphp1-8\www\formulaire_contact\form1.php on line 12

Le message a bien été envoyé, merci.
Voici mon script modfié :

Code : Tout sélectionner

<?php if(!isset($_POST['nom']) && !isset($_POST['email']) && !isset($_POST['objet'])){ ?> <form name="envoiemail" id="envoiemail" method="post" action=""> <p>Votre nom <input name="nom" type="text" class="cellule" id="nom"/></p> <p>Votre email <input name="email" type="text" id="email"/></p> <p>Sujet de votre email <input name="sujet" type="text" id="sujet"/></p> <p>Message <br /><textarea name="message"></textarea></p> <p><input name="Submit" type="submit" onclick="MM_validateForm('nom','','R', 'email','','NisEmail','sujet','','R','textarea','','R');return document.MM_returnValue" value="Envoyer"/></p></form> <?php } else { mail("[email protected]", $_POST ['sujet'], $_POST['message'],"From: ".$_POST['nom']."<".$_POST['email'].">"); ?> <p>Le message a bien été envoyé, merci.</p> <?php } ?>
Je ne vois pas ce qui pourrait clocher.

Merci du coup de main
Je sais qu'on ne sait jamais (Jean gabin)