fonction mail() -> adresse du messager[resolu]

fonction mail() -> adresse du messager[resolu] - PHP - Programmation

Marsh Posté le 03-11-2004 à 13:04:12    

bonjour !
j'ai quelques petites difficultes avec la fonction mail
voila je voudrais mettre dans la tete du mail l'adresse du messager => contact@monsite.com
voici le code de la page de traitement actuellement:

Code :
  1. <?php
  2. $recipient = $_POST['mail'];
  3. $subject = $_POST['sujet'];
  4. $msg = $_POST['message'];
  5. mail($recipient, $subject, $msg);
  6. ?>


que dois-je rajouter?
 
aussi petite question $_POST['message'] ne prend pas en compte les sauts de ligne comment dois-je m'y prendre
 

Code :
  1. <textarea name="message" cols=57 rows=15></textarea>


 
merci de votre aide :ange:


Message édité par attentio le 24-03-2005 à 20:59:56

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
Reply

Marsh Posté le 03-11-2004 à 13:04:12   

Reply

Marsh Posté le 03-11-2004 à 13:34:58    

tu trouveras ton bonheur ici :
http://www.nexen.net/docs/php/anno [...] n.mail.php


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 13:45:54    

Pour prendre en compte les retours ligne, par ex. ds le mess.:
<?php
//prise en compte des retour ligne utilisateur
$msg=nl2br($msg);  
$recipient = $_POST['mail'];  
$subject = $_POST['sujet'];  
$msg = $_POST['message'];  
mail($recipient, $subject, $msg);  
?>

Reply

Marsh Posté le 03-11-2004 à 13:49:58    

piedbleu a écrit :

Pour prendre en compte les retours ligne, par ex. ds le mess.:
<?php
//prise en compte des retour ligne utilisateur
$msg=nl2br($msg);  
$recipient = $_POST['mail'];  
$subject = $_POST['sujet'];  
$msg = $_POST['message'];  
mail($recipient, $subject, $msg);  
?>


 
non, cela depend du format de mail.  
Et par défaut c'est du texte brut !
 
si c'est en html d'accord mais au format text \n est son ami


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 13:50:17    

ou plutôt:
//prise en compte des retour ligne utilisateur  
$_POST['sujet']=nl2br( $_POST['message']);
//puis suite de ton code

Reply

Marsh Posté le 03-11-2004 à 13:51:27    

si c'est en html d'accord mais au format text \n est son ami
EXACT

Reply

Marsh Posté le 03-11-2004 à 15:46:32    

j'imagine que mon texte est au format text... je n'est rien fait dans mon formulaire!!
donc comment je doit fait pour eviter au redacteur d' ecrire \n a chaque fin de ligne dans le <textarea>

Reply

Marsh Posté le 03-11-2004 à 16:35:34    

attentio a écrit :

j'imagine que mon texte est au format text... je n'est rien fait dans mon formulaire!!
donc comment je doit fait pour eviter au redacteur d' ecrire \n a chaque fin de ligne dans le <textarea>


 
il ne le fait pas ... lui il appuie sur Enter et ca marque automatique un saut de ligne (\n)   sans pour autant qu'il soit visible!


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 16:40:29    

j'ai pas bien compris ... peu tu reformuler ta reponse ...
 
si "il ne le fait pas" comment faire pour transformer mon texte brut dans le <textarea>au format html
 
merci encore de votre aide

Reply

Marsh Posté le 03-11-2004 à 16:52:18    

heu tu as qu'a lui faire faire du html directement, genre avec HTMLarea, c'est très bien pour ce type de cas je trouve: http://www.htmlarea.com/htmlarea_2/download.html

Reply

Marsh Posté le 03-11-2004 à 16:52:18   

Reply

Marsh Posté le 03-11-2004 à 16:56:59    

attentio a écrit :

j'ai pas bien compris ... peu tu reformuler ta reponse ...
 
si "il ne le fait pas" comment faire pour transformer mon texte brut dans le <textarea>au format html
 
merci encore de votre aide


 
Quand tu appuies sur entrée , ca fait automatiquement un saut de ligne dans ton textarea.
 
Ta variable qui contient le contenu du texte area va lui envoyé les \n
 
C'est notamment le cas sur ce forum !
 
Si je reprends ton message, j'obtiens ca :
 

Citation :


$msg="j'ai pas bien compris ... peu tu reformuler ta reponse ...\nsi "il ne le fait pas" comment faire pour transformer mon texte brut dans le <textarea>au format html\nmerci encore de votre aide\n"


 
pour l'afficher en html ( c'est le cas sur ce forum) est appliqué la fonction $msg_with_br=nl2br($msg);
 
echo $msg_with_br;
 
mais toi tu l'envoies au format texte donc tu le laisse sous sa forme originelle.
 
ATTENTION : pour que \n soit interpreté il doit être contenu dans des "" (doubles quotes) et non des '' (simples quotes)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 17:11:48    

mais alors comment envoyer mon formulaire au format html ??? :??:  
 

Code :
  1. //formulaire.php
  2. <FORM method="POST" action="traitement_mail.php">
  3.           <table align="center" border="0"  cellpadding="0" cellspacing="0">
  4.             <tr>
  5.               <td  align="right">Sujet :&nbsp; </td><td>
  6.                 <INPUT type="text" name="sujet" class="champs_texte" size=75>
  7.    <INPUT type="hidden" name="mail" value="<? echo $ad_mail; ?>">
  8.    </td>
  9.             </tr>
  10.   <tr><td colspan="2"height="5"></td></tr>
  11.             <tr>
  12.               <td align="right" valign="top">Message :&nbsp;</td>
  13.               <td> <textarea name="message" cols=57 class="champs_texte" rows=15></textarea></td>
  14.             </tr>
  15.             <tr>
  16.               <td colspan="2" align="right"><br> <INPUT type="submit" value="Envoyer"> </td>
  17.             </tr>
  18.           </table>
  19. </FORM>


 

Code :
  1. <?php
  2. //traitement_mail.php
  3. $msg=nl2br($msg);
  4. $recipient = $_POST['mail'];
  5. $subject = $_POST['sujet'];
  6. $msg = $_POST['message'];
  7. mail($recipient, $subject, $msg,"From: service_clients@{$_SERVER['SERVER_NAME']}\r\n"
  8.     ."Reply-To: service-clients@{$_SERVER['SERVER_NAME']}\r\n" );
  9. echo $msg;
  10. ?>


 
merci


Message édité par attentio le 03-11-2004 à 17:14:01
Reply

Marsh Posté le 03-11-2004 à 17:17:21    

Attentio > tu commences a m'ennerver :o
 
tu n'as pas besoin de l'envoyer au format html pour avoir les retours à la ligne
 
Si tu avais lu le premier lien que je t'ai envoyé tu le saurais :o
http://www.nexen.net/docs/php/anno [...] n.mail.php
 
je cite :

Citation :


<?php
mail("maxou@example.com", "Mon Sujet", "Ligne 1\nLigne 2\nLigne 3" );
?>


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 17:19:34    

et testes ton code  [:southpark1]  
 

Code :
  1. <?php
  2. //traitement_mail.php
  3. $recipient = $_POST['mail'];
  4. $subject = $_POST['sujet'];
  5. $msg = "ligne1\nligne2\ligne3";
  6. if(mail($recipient, $subject, $msg))
  7.      echo "envoi de mail ok";
  8. else
  9.      echo "mail non envoyé";
  10. ?>


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 17:26:28    

si je suis aussi insistant, C parce que dans mes tests ne font pas les retours a la ligne.
ex : dans mon textarea
L1 : bonjour,
L2 : ca marche pas  
 
donne dans un echo $msg bonjour,ca marche pas
et non pas  
bonjour<br>
ca marche pas
 
voilou
merci

Reply

Marsh Posté le 03-11-2004 à 17:27:55    

attentio a écrit :

si je suis aussi insistant, C parce que dans mes tests ne font pas les retours a la ligne.
ex : dans mon textarea
L1 : bonjour,
L2 : ca marche pas  
 
donne dans un echo $msg bonjour,ca marche pas
et non pas  
bonjour<br>
ca marche pas
 
voilou
merci


 
dans un echo oui mais pas dans le mail :o


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 03-11-2004 à 17:28:14    

... si je fais $msg = "ligne1\nligne2\ligne3"; bien evidament que ca marche ...

Reply

Marsh Posté le 03-11-2004 à 17:29:34    

et si je vais un print_r C pareil

Reply

Marsh Posté le 03-11-2004 à 17:38:26    

bon alors on essayes autre chose :
 

Code :
  1. $msg=nl2br($msg); 
  2. $recipient = $_POST['mail'];
  3. $subject = $_POST['sujet'];
  4. $msg = $_POST['message'];
  5. $msg=str_replace("<br>", "\n", $smg);
  6. if(mail($recipient, $subject, $msg)) 
  7.      echo "envoi de mail ok";
  8. else
  9.      echo "mail non envoyé";


Message édité par simogeo le 03-11-2004 à 17:38:38

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 04-11-2004 à 09:18:01    

:ouch:

Code :
  1. $msg = nl2br($msg); 
  2. $recipient = $_POST['mail'];
  3. $subject = $_POST['sujet'];
  4. $msg = $_POST['message'];
  5. $msg = str_replace("<br />", "\n", $smg);
  6. if (mail($recipient, $subject, $msg)) 
  7.      echo "envoi de mail ok";
  8. else
  9.      echo "mail non envoyé";


 
Quoi je chippote? <br> ou <br />.
 
Oui ok je sors!

Reply

Marsh Posté le 04-11-2004 à 09:29:49    

par dafut le php.ini doit proposer <br> c'est pour ca que j'ai choisi ce modele ...
 
faut bien que ca matche :o
 
(du reste ce script est compltément con et inutile)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 04-11-2004 à 16:46:51    

+1 :D

Reply

Marsh Posté le 04-11-2004 à 19:39:59    

:ange: tu avais raison meme si le print_r et le echo n'affiche pas les <br> le mail lui en tient compte.donc du coup ca marche ... enfin presque
 
merci de votre aide :hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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