Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1388 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°869998
miltonis
Posté le 11-10-2004 à 13:18:33  profilanswer
 

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!:-)

mood
Publicité
Posté le 11-10-2004 à 13:18:33  profilanswer
 

n°870000
Sinan
Posté le 11-10-2004 à 13:20:10  profilanswer
 

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
n°870009
miltonis
Posté le 11-10-2004 à 13:28:28  profilanswer
 

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

n°870058
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2004 à 14:10:36  profilanswer
 

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)
 
++

n°870077
miltonis
Posté le 11-10-2004 à 14:21:55  profilanswer
 

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";  
 }  
}  
?>

n°870086
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2004 à 14:25:01  profilanswer
 

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?>
 
++

n°870097
Profil sup​primé
Posté le 11-10-2004 à 14:30:58  answer
 

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?

n°870098
miltonis
Posté le 11-10-2004 à 14:31:07  profilanswer
 

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..

n°870103
miltonis
Posté le 11-10-2004 à 14:32:06  profilanswer
 

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>

n°870107
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2004 à 14:32:36  profilanswer
 

chacal_one333 a écrit :

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


 
:lol: Je pense quand meme que non ;)

mood
Publicité
Posté le 11-10-2004 à 14:32:36  profilanswer
 

n°870110
Profil sup​primé
Posté le 11-10-2004 à 14:33:28  answer
 

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

n°870129
miltonis
Posté le 11-10-2004 à 14:42:29  profilanswer
 

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..

n°870134
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2004 à 14:43:46  profilanswer
 

T'as pas fermé ton IF

n°870137
Profil sup​primé
Posté le 11-10-2004 à 14:44:51  answer
 

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"] ?

n°870155
miltonis
Posté le 11-10-2004 à 14:52:45  profilanswer
 

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! :-)

n°870163
Profil sup​primé
Posté le 11-10-2004 à 14:57:00  answer
 

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

n°870169
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2004 à 15:06:36  profilanswer
 

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

n°871319
miltonis
Posté le 12-10-2004 à 13:06:34  profilanswer
 

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
 

n°871323
Profil sup​primé
Posté le 12-10-2004 à 13:07:43  answer
 

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

n°871358
miltonis
Posté le 12-10-2004 à 13:49:06  profilanswer
 

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";   ?

n°871383
Profil sup​primé
Posté le 12-10-2004 à 14:13:45  answer
 

pas sur je l'ai mis comme une alternative


Message édité par Profil supprimé le 12-10-2004 à 14:14:06
n°871582
miltonis
Posté le 12-10-2004 à 15:48:50  profilanswer
 

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==

n°871641
miltonis
Posté le 12-10-2004 à 16:15:13  profilanswer
 

ai trouvé enfin!  
merci :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[MYSQL]probleme requete imbriquéeprobleme avec un if[RESOLU]
[C] problème de boucleproblème dans un prog
probleme javascript et firmulaireurl rewriting probleme !
Problème de jointures multiplesProblème avec une requête SQL comprenant "in"
Problème de declaration de sous-class[HTML/CSS] Problème taille police dans tableau sous IE [RESOLU]
Plus de sujets relatifs à : probleme d'un débutant avec la focntion mail()


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR