probleme d'un débutant avec la focntion mail()

probleme d'un débutant avec la focntion mail() - PHP - Programmation

Marsh Posté le 11-10-2004 à 13:18:33    

Bonjour,
 
Je viens de faire un formulaire avec un appel à la focntion mail pour envoyer juste un mesage à partir d'un site.
Mais, ça ne marche pas.
je suis certain que j'ai oublié quelque chose mais j'ai beau chercher je ne vois pas quoi, le mail de test en tout cas jene le reçois pas. Au contraire, il me redirige vers une page 404.
allez un petit coup de main?
 
voici le scriptque j'ai récupéré sur un site, et modifié à ma sauce :
merci!:-)

Reply

Marsh Posté le 11-10-2004 à 13:18:33   

Reply

Marsh Posté le 11-10-2004 à 13:20:10    

va voir la fonction mail sur php.net et vérifie que ton hébergeur autorise l'envoi de mails par php :jap:


---------------
Cptn.Barberousse
Reply

Marsh Posté le 11-10-2004 à 13:28:28    

Salut Sinan,
 
j'ai été voir sur le site de mon hébergeur (tiscali) et ils disent ceci :
Vous pouvez utiliser toutes les fonctions, sauf :  
- les fonctions réseaux
- les fonctions SYSLOG
- la possibilité de changer les options déclarées dans la Config PHP  
- les fonctions POSIX  
 
étant donné que je ne comprends pas grand chose (pour l'instant) à tout ça, j'aimerais savoir si ça inclut la fonction mail...
et une petite explication sur ce tout ça veut dire serait super sympa ;-)
thanks

Reply

Marsh Posté le 11-10-2004 à 14:10:36    

Normalement oui, sinon tu peux aussi faire un phpinfo() je crois, il me semble que l'info s'y trouve (à confirmer)
 
De toute façon, si lors de l'envoi tu as une erreur 404, je doute fort que ça vienne de la fonctione mail() désactivée ...  C'est au moment où tu valides ton formulaire que tu as cette erreur ?
 
Pourrais tu nous mettre des portions de code aussi ? (voir le code entier s'il n'est pas long)
 
++

Reply

Marsh Posté le 11-10-2004 à 14:21:55    

oui c'est au moment où je valide que ça...coince!
voici le code :
 
<form method="POST" action="<? echo $PHP_SELF; ?>">  
<p align="center">
 <b><font size="3" face="Verdana"><u>Formulaire E-Mail</u></font></b>
</p>  
 
<p align="center">
<?  
// Récupération des variables envoyées en POST  
$posted = $_POST['posted'];  
$from = $_POST['from'];  
$to = $_POST['to'];  
$subject = $_POST['subject'];  
$message = $_POST['message'];  
$entetes = $_POST['entetes'];
 
// Définition des entetes :  
$entetes = "From:$fromnrreturn-path:$from";  
 
if($posted)  
{  
  if(empty($to))  
   echo "L'e-mail du destinataire svp !";  
 elseif(empty($from))  
   echo "Votre E-mail svp !";  
 elseif(empty($subject))  
   echo "Le Sujet du Message svp !";  
 elseif(empty($message))  
   echo "Le Message svp !";  
 else  
 {    
  if(mail($to,$subject,$message,$entetes))  
   echo "Email envoyé avec Succès !";  
  else    
   echo "L'envoi de l'Email a échoué, réessayez ou <br> recopiez \"intervet@netcourrier.com\" directement dans votre client d'envoi de mails";  
 }  
}  
?>

Reply

Marsh Posté le 11-10-2004 à 14:25:01    

Essaies de remplacer ton  
 
$PHP_SELF;
 
par
 
$_SERVER['PHP_SELF'];
 
Autre chose pour les echos, tu n'est pas obligé de faire
 
<? echo $variable; ?>
 
tu peux faire
 
<?=$variable?>
 
++

Reply

Marsh Posté le 11-10-2004 à 14:30:58    

miltonis a écrit :

oui c'est au moment où je valide que ça...coince!
voici le code :
 
<form method="POST" action="<? echo $PHP_SELF; ?>">  
<p align="center">
 <b><font size="3" face="Verdana"><u>Formulaire E-Mail</u></font></b>
</p>  
 
<p align="center">
<?  
// Récupération des variables envoyées en POST  
$posted = $_POST['posted'];  
$from = $_POST['from'];  
$to = $_POST['to'];  
$subject = $_POST['subject'];  
$message = $_POST['message'];  
$entetes = $_POST['entetes'];
 
// Définition des entetes :  
$entetes = "From:$fromnrreturn-path:$from";  
 
if($posted)  
{  
  if(empty($to))  
   echo "L'e-mail du destinataire svp !";  
 elseif(empty($from))  
   echo "Votre E-mail svp !";  
 elseif(empty($subject))  
   echo "Le Sujet du Message svp !";  
 elseif(empty($message))  
   echo "Le Message svp !";  
 else  
 {    
  if(mail($to,$subject,$message,$entetes))  
   echo "Email envoyé avec Succès !";  
  else    
   echo "L'envoi de l'Email a échoué, réessayez ou <br> recopiez \"intervet@netcourrier.com\" directement dans votre client d'envoi de mails";  
 }  
}  
?>

rassure moi, tu n'a pas recopier le formulaire la hein?

Reply

Marsh Posté le 11-10-2004 à 14:31:07    

merci mais...
cette fois il ne me dirige pas vers une erreur 404 mais rafraichit la page en effaçant les donnees.
en tout cas je ne reçois pas le mail de test, j'attends un peu au cas où il serait un peu long..

Reply

Marsh Posté le 11-10-2004 à 14:32:06    

non :-)
le formulaire le voici :
<input type="hidden" name="posted" value="1">  
<p align="center">Destinataire :  
<input type="text" name="to" size="22" value="intervet@netcourrier.com"></p>  
<p align="center">Expéditeur :  
<input type="text" name="from" size="22"></p>  
<p align="center">Sujet :  
<input type="text" name="subject" size="45">  
</p>  
<p align="center">Message :</p>  
<p align="center"><textarea rows="8" name="message" cols="45"></textarea>  
</p>  
<p align="center"></p>  
<p align="center">  
<input type="submit" value="Envoyer" name="envoyer">    
</p>  
</form>

Reply

Marsh Posté le 11-10-2004 à 14:32:36    

chacal_one333 a écrit :

rassure moi, tu n'a pas recopier le formulaire la hein?


 
:lol: Je pense quand meme que non ;)

Reply

Marsh Posté le 11-10-2004 à 14:32:36   

Reply

Marsh Posté le 11-10-2004 à 14:33:28    

deja html a revoir, le align et les <p> dans le vent ca sert a quedalle
 
ensuite fait if (isset($_POST["posted"])) voir

Reply

Marsh Posté le 11-10-2004 à 14:42:29    

tu as raison pour le HTML, correction faites aussi pour le if(isset...
mais c'est tjrs la même réaction, je ne vois pas ce que ça peut être
à moins que ce ne soit du coté de tiscali..

Reply

Marsh Posté le 11-10-2004 à 14:43:46    

T'as pas fermé ton IF

Reply

Marsh Posté le 11-10-2004 à 14:44:51    

en plus ta method du $posted ca sert a rien.
 
c'est autant fait
 
<input type="submit" name="truc" />
 
et dans le traitement
 
if (isset($_POST["truc"]))
 
tu a bien changé le $PHP_SELF en $_SERVER["PHP_SELF"] ?

Reply

Marsh Posté le 11-10-2004 à 14:52:45    

oui oui, j'ai bien intégré le $_SERVER["PHP_SELF"];
et le IF est bien fermé,  
ne comprenant tjrs pas ce qui va pas, je vais tout faire de manière plsu simple, voir ce que ça donne.
mais si une idée vous vient en attendant, n'hésitez pas.
merci! :-)

Reply

Marsh Posté le 11-10-2004 à 14:57:00    

replace

Code :
  1. else 
  2. {   
  3.   if(mail($to,$subject,$message,$entetes)) 
  4.    echo "Email envoyé avec Succès !"; 
  5.   else   
  6.    echo "L'envoi de l'Email a échoué, réessayez ou <br> recopiez \"intervet@netcourrier.com\" directement dans votre client d'envoi de mails"; 
  7. }


 
 
par  

Code :
  1. else echo "hop";


 
voir s'il arrive au moins la

Reply

Marsh Posté le 11-10-2004 à 15:06:36    

Ah j'avais mal vu pour le IF ... bah je savais pas qu'on pouvais faire des IF ... ELSE sans les accolades en fait...
 
Essayes tout simplement
 

Code :
  1. <form method="post" action="<?=$_SERVER["PHP_SELF"]?>">
  2. <input type="text" name="toto">
  3. <input type="submit">
  4. </form>
  5. <?
  6. echo isset($_POST['toto']) ? "Oui" : "Non";
  7. ?>


 
Voir ce que ça donne

Reply

Marsh Posté le 12-10-2004 à 13:06:34    

j'ai un peu tardé mais me revoilà,
j'ai essayé avec  
<form method="post" action="<?=$_SERVER["PHP_SELF"]?>">  
<input type="text" name="toto">  
<input type="submit">  
</form>  
<?  
echo isset($_POST['toto']) ? "Oui" : "Non";  
?>
 
et le form est affiché d'emblée avec un NON, je soumets la requete et la page se recharge.
ce qui me taraude c'est que ça m'a l'air tout bete mais que ça ne marche pas.
Tiscali accepte la focntion mail non?
merci
 

Reply

Marsh Posté le 12-10-2004 à 13:07:43    

Code :
  1. $output = (isset($_POST['toto']))?"Oui":"Non";
  2. echo $output;

Reply

Marsh Posté le 12-10-2004 à 13:49:06    

salut Chacal,
avec ça aussi c'est la même
il y a une différence entre le code que tu m'as envoyé et
 
echo isset($_POST['toto']) ? "Oui" : "Non";   ?

Reply

Marsh Posté le 12-10-2004 à 14:13:45    

pas sur je l'ai mis comme une alternative


Message édité par Profil supprimé le 12-10-2004 à 14:14:06
Reply

Marsh Posté le 12-10-2004 à 15:48:50    

alors voilà,  
je m'y prends autrement, ça marche cette fois mais j'ai encore un p'ti souci :(
le texte est comme codé, je neconais pas l'encode exact mais j'ai mis  

Code :
  1. $body = chunk_split(base64_encode($message));


 
par ex si je mets dans le message 123, j'ai DZHetc==

Reply

Marsh Posté le 12-10-2004 à 16:15:13    

ai trouvé enfin!  
merci :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed