par
Spols » 09 nov. 2016, 11:23
C'est le propre des message d'erreur du type notice, il n'empèche pas le fonctionnement du script.
tester l'éxistence d'une variable avec isset se fait avec une condition if
par exemple
if (isset($mime_boundary)) $message = "--$mime_boundary \r\n";
la variable $message ne sera créer et remplie que si $mime_boundary existe
Dans ton cas, elle n'existera jamais à moins que tu la crée (mais je vois pas trop pourquoi tu ferais cela)
Maintenant pour ta nouvelle Notice,
Le fait est que en supprimant la ligne 17, tu as aussi retiré l'endroit du code où la variable $message est créé. tu l'utilise ensuite pour la remplir avec la syntaxe .= (note la présence du point). PHP considère que lors de l'utilisation de la syntaxe .= la variable doit dèjà être défini. sinon il affiche une Notice. Mais PHP est malin, l'utilisation d'une variable non défini n'est pas vraiment un problème puisqu'il lui suffit de la créer.
C'est d'ailleurs la même chose qui se produisait dans ton premier code, $mime_boundary n'éxistait pas mais php remplissait par un texte vide qui ne génait pas l'éxécution du script.
Pour une raison de bonne pratique, et car même une Notice peut aider à débugger, il est conseillé de définir chaque variable avant de les utiliser ou lors de leur première utilisation.
Dans ton cas, je modifierais juste la nouvelle ligne 17 comme ceci
$message = "Vous avez reçu un E-mail sur le site
www.fr: \r\n";
En enlevant le point la première fois que tu utilise la variable, tu la défini et tu la rempli d'un texte.
Ne supprime pas le point des autres lignes, sinon tu écrasera la variable à chaque fois et ton texte sera tronqué.
C'est le propre des message d'erreur du type notice, il n'empèche pas le fonctionnement du script.
tester l'éxistence d'une variable avec isset se fait avec une condition if
par exemple
if (isset($mime_boundary)) $message = "--$mime_boundary \r\n";
la variable $message ne sera créer et remplie que si $mime_boundary existe
Dans ton cas, elle n'existera jamais à moins que tu la crée (mais je vois pas trop pourquoi tu ferais cela)
Maintenant pour ta nouvelle Notice,
Le fait est que en supprimant la ligne 17, tu as aussi retiré l'endroit du code où la variable $message est créé. tu l'utilise ensuite pour la remplir avec la syntaxe .= (note la présence du point). PHP considère que lors de l'utilisation de la syntaxe .= la variable doit dèjà être défini. sinon il affiche une Notice. Mais PHP est malin, l'utilisation d'une variable non défini n'est pas vraiment un problème puisqu'il lui suffit de la créer.
C'est d'ailleurs la même chose qui se produisait dans ton premier code, $mime_boundary n'éxistait pas mais php remplissait par un texte vide qui ne génait pas l'éxécution du script.
Pour une raison de bonne pratique, et car même une Notice peut aider à débugger, il est conseillé de définir chaque variable avant de les utiliser ou lors de leur première utilisation.
Dans ton cas, je modifierais juste la nouvelle ligne 17 comme ceci
$message = "Vous avez reçu un E-mail sur le site www.fr: \r\n";
En enlevant le point la première fois que tu utilise la variable, tu la défini et tu la rempli d'un texte.
Ne supprime pas le point des autres lignes, sinon tu écrasera la variable à chaque fois et ton texte sera tronqué.