mail qui ne part jamais

Eléphant du PHP | 250 Messages

16 mai 2008, 23:01

Non, non, je fais bien:
<?php session_start();?>
D'ailleurs, c'est ce que j'écrivais hier:
Hello.
Merci pour le . du 1er $msg! Par contre, mais c'est de ma faute je ne l'ai pas précisé dans mon post, j'ai bien une session_start(), que voici d'ailleurs:
PHP:
<?php
session_start();
if (!isset($_SESSION['identification']) || !isset($_SESSION['prenom']) || !isset($_SESSION['nom']) || !isset($_SESSION['email']) || !isset($_SESSION['adresse'])) {
header ('Location: ../index.php');
exit();
}
?>
...mais je le mets avec include et AVANT <entête xhtml>
Alors voilà toute la page:

Code : Tout sélectionner

<?php include ('../codes/session.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Journaux Intimes, Le pdf!</title> <link href="../styles/styldo.css" rel="stylesheet" type="text/css" media="screen" /> <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="../styles/chie.css" media="screen" /> <![endif]--> </head> <body> <div id="bkground"> <div id="global"> <div id="head"></div><!--fin header--> <div id="cont-page"> <div id="cont-txt-droit"> <p class="texte-page"> <?php echo ("Bonjour $prenom $nom"); ?> <br /> blablablablebleblibliblobloblublu Un second mail va vous parvenir avec votre fichier .pdf. <form method="post" action="mail-auto.php"> <input type="submit" name="mail" value="Cliquez ici pour recevoir votre commande..." /> </form> Nous vous remercions encore de votre commande, et vous souhaitons une agr&eacute;able lecture. <br /> <br /> <br /> <a href="deconnexion.php">Cliquez ici pour revenir &agrave; l'accueil du site de XXX.</a> </p> </div><!--fin texte droit--> <div id="cont-legal"></div><!--fin conteneur legal--> </div><!--fin conteneur general page--> </div><!--fin global--> </div><!--fin ombre--> </body> </html>
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

ViPHP
ViPHP | 2291 Messages

16 mai 2008, 23:05

Et dans ton mail-auto.php a tu un session_start() aussi ?????
Chaque fichier qui a besoins des variable de session doit commencer par un session_start()

Eléphant du PHP | 250 Messages

16 mai 2008, 23:11

Non, non :lol: Je disais avoir copier TON test avec ton session_start(); ce qui en faisait 2 (le mien en tête de page et avec son <?php ?> et le tien dans le test suggéré..:oops: ); mais je l'ai corrigé depuis...
Quoi qu'il en soit je me demande toujours si les différences énoncées plus haut (texte/multipart et sans/avec fichier joint) ne sont pas responsable de ce dysfonctionnement... :?
Qu'en penses tu? C'est possible?
P.S: Je n'ai même pas pensé à te remercier pour tout ce que tu as déjà fait pour m'aider! Honte à moi :oops: Merci donc ! :D
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

ViPHP
ViPHP | 2291 Messages

16 mai 2008, 23:14

Non cela ne devrais pas intervenir, mais je pense que tu devrais refaire ton formulaire a ton aise et regarder le tuto que je t'ai donner ou un autre . :wink:

Eléphant du PHP | 250 Messages

16 mai 2008, 23:15

Oui, tu as raison, car là je suis perdu dans mes modifs et nos réponses qui se croisent
Encore merci et à plus tard peut être
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

ViPHP
ViPHP | 2291 Messages

16 mai 2008, 23:22

Ok revient quand ton projet sera plus claire :wink:
Bonne chance

Eléphant du PHP | 250 Messages

18 mai 2008, 23:01

Bonsoir
Alors, j'ai bien relu (parce que je le connaissais déjà... :oops: ) le tuto proposé par dunbar, et...c'est moins pire! :D
J'explique (et je montre!): J'obtiens maintenant ce message:
Warning: Division by zero in /home.10.16/lejolisite/www/charge/mail-auto3.php on line 78

Warning: file_get_contents(0pdf) [function.file-get-contents]: failed to open stream: No such file or directory in /home.10.16/lejolisite/www/charge/mail-auto3.php on line 78
Le mail a été envoyé
Ok, je comprends bien que la fonction file_get_contents a échoué, mais:
1) je ne comprends pas vraiment pourquoi...Oui, je sais...le boulet!
2) le mail part bien (haaaaaaaaa...enfin!), mais sans le fichier pdf et sans le texte du mail non plus, car je reçois ceci:
From: "Nom"<[email protected]>
Return-Path:<[email protected]>/nMIME-Version:1.0
Content-Type:multipart/mixed; boundary= "-----=1e27faa846b32e39b92c0d7a03808868"
Et c'est tout....! :cry:
Ah, j'oubliais, le code revu (merci encore à dunbar):
<?php
session_start();
//------------------------------------------
//déclaration des variables
//------------------------------------------
$dest = $_SESSION['email'];
$exp = "[email protected]";
$reply = "[email protected]";
$nom_exp = "XXXXXX";
$msg_txt = 'Bonjour."\n\n";
$msg_txt .='Merci d\'avoir commandé \"YYYYY\", au format pdf."\n"
Nous vous en souhaitons une bonne réception, et surtout une bonne lecture."\n"
Nous vous rappelons qu\'un espace de discussion à son sujet est ouvert dans le forum du site de 
XXXXX, et que vos commentaires y sont attendus."\n\n"
Cependant, si vous rencontriez quelque problème que ce soit, n\'hésitez pas à nous le signaler."\n"
A bientôt."\n\n"
XXXXX';
$msg_html = '<html>
<head>
<title>YYYYYY, format pdf</title>
</head>
<body><b>Bonjour.</b>
<br />
<br />
Merci d\'avoir commandé \"YYYYYYYYY", au format pdf.
<br />
Nous vous en souhaitons une bonne réception, et surtout une bonne lecture.
<b />
Nous vous rappelons qu\'un espace de discussion à son sujet est ouvert dans le forum du site de 
XXXXXXX, et que vos commentaires y sont attendus.
<b />
Cependant, si vous rencontriez quelque problème que ce soit, n\'hésitez pas à nous le signaler.
<br />
<br />
A bientôt.
<br />
<br />
XXXXXXXXXX
</body>
</html>';
//------------------------------------------
//création de la frontière
//------------------------------------------
$frontiere = '-----='.md5(uniqid(mt_rand()));
//en têtes
$head = 'From: "Nom"<'.$exp.'>'."\n";
$head .='Return-Path:<'.$reply.'>'."/n";
$head .= 'MIME-Version:1.0'."\n";
$head .= 'Content-Type:multipart/mixed; boundary= "'.$frontiere.'"';

//--------------------------------------------
//Message texte
//--------------------------------------------
$msg = 'This is a multi-part message in MIME format.'."\n\n";
$msg .= '--'.$frontiere.'--'."\n";
$msg .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$msg .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$msg .= $msg_txt."\n\n";

//---------------------------------------------
//Message Html
//---------------------------------------------
$msg .= '--'.$frontiere.'--'."\n";
$msg .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$msg .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$msg .= $msg_html."\n\n";

$msg .= '--'.$frontiere.'--'."\n";

//----------------------------------------------
//PIECE JOINTE!
//--------------------------------------------

$msg .='Content-Type: application/pdf; name= "complets/YYYYYYY.pdf"'."\n";
$msg .='Content-Transfer-Encoding: base64'."\n";
$msg .= 'Content-Disposition: attachement; filename ="complets/YYYYYYYYY.pdf"'."\n\n";

$msg .=chunk_split(base64_encode(file_get_contents(complets/YYYYYYYYYYYYY.pdf)))."\n";

if (mail($dest,$msg,$head))
{
  echo'Le mail a été envoyé';
}
else
{
  echo 'Le mail n\a pu être envoyé; contactez le webmaster!';
}
?>
Voilà. Désolé de vous déranger encore avec ça, mais si vous aviez une piste, je suis toujours preneur.
Quoi qu'il en soit, merci encore pour votre aide et vos conseils
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Eléphant du PHP | 224 Messages

19 mai 2008, 00:28

Bonsoir :)

Petit souci d'apostrophe sur ce code, mais il doit certainement venir du copier/coller :
$msg_txt = 'Bonjour."\n\n"; 
Qui devrait normalement être :
$msg_txt = 'Bonjour'."\n\n"; 
D'ailleurs, petite astuce pour éviter de saisir à chaque fois les retours à la ligne "\n", c'est de le mettre dans un "array", un peu comme-ça :
$ret = array("", "\n", "\n\n", "\n\n\n", "\n\n\n\n"); // a placer au debut du script
$msg_txt = 'Bonjour'.$ret[2]; // le numero correspond au nombre de retours a utiliser
à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 250 Messages

19 mai 2008, 09:20

Bonjour
J'ai fini par voir (et comprendre! :? ) pourquoi j'avais ce message concernant file_get_contents. A celles et ceux qui seraient interessé-e-s voici pourquoi:
Dans la ligne chunk_split il faut écrire le chemin du fichier ainsi:
$msg .=chunk_split(base64_encode(file_get_contents("http://www.lejolisite.fr/le chemin complet jusqu'à votre fichier.pdf")))."\n";
Bien, je mets 'Résolu', car mon mail arrive enfin. Il n'est pas complet car il manque le texte( :?: ) et le fichier joint( :?: ).
Mais ça, ce devrait être l'objet d'un autre post.... :lol: :? :?:
Le plus drôle, c'est qu'à l'arrivée mon courrielleur (Thunderbird) m'annonce bien un message AVEC une pièce jointe, et lorsque je clique sur le message pour le lire...la pièce disparait!!! |*()
Il doit y avoir une bête solution que je vais m'efforcer de trouver.
Si vous avez une idée, n'hésitez pas à me le faire savoir.
En attendant, merci à toutes et tous pour votre aide.
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."