Erreur ligne 23 ,pourquoi ?
RésoluDanouL Messages postés 785 Statut Membre -
j'ai une erreur ligne 23 a quoi correspond t-elle et que veut dire boundary ?
//=====Création de la boundary $boundary = "-----=".md5(rand()); //==========
( syntax error, unexpected T_DEC)
merci de ne pas oublier de mettre résolu lorsque cela est le cas ou de dire résolu quand vous ne pouvez pas !
+1 permet d'aider les autres !
----------------------------
[Aimer ce n'est pas renoncer à sa liberté, c'est lui donner un sens.]
- Erreur ligne 23 ,pourquoi ?
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Apparaitre hors ligne instagram - Guide
- Erreur s3 bbox - Forum Bbox Bouygues
4 réponses
Une erreur de syntaxe apparaît sur la ligne 23 liée à l'échappement des guillemets dans un echo PHP et à la définition d'une valeur boundary, signalant un parse error ou un T_DEC inattendu.
Plusieurs réponses préconisent d'échapper les guillemets dans l'instruction echo pour éviter que le code HTML ou JavaScript intégré ne soit interprété comme fin de chaîne.
D'autres conseils suggèrent de vérifier le contenu exact du boundary et de tester le code sur des outils de débogage, car les messages d'erreur peuvent masquer une simple tension de citations.
En cas de persistance, il peut être utile de partager l'intégralité du bloc concerné et d'examiner les règles d'échappement et de concaténation, notamment autour des éléments HTML insérés.
Essaie avec des guillemets simples (apostrophes).
Je crois avoir lu quelque-part que T_DEC correspondant à l'opérateur de décrémentation « -- », et entre guillemets doubles, certaines choses sont interprétées par PHP (les variables, les caractères comme \n ou \r pour le retour à la ligne, etc).
Petit commentaire au passage : « Création de la boundary » pour mélanger français/anglais :) Boundary = Frontière/Limite
Personnellement, je préfère toujours utiliser les guillemets simples car PHP n'analyse pas le contenu de la chaine (à la recherche de variable ou caractère spéciaux).
Mais ça reste fonctionnel avec les guillemets doubles tant que tu penses bien à échapper ces caractères spéciaux.
echo '<script>alert("Votre inscription à bien été pris en compte,merci");window.location.replace("http://xxxxx.net")</script>';Ou :echo '<script>alert(\'Votre inscription à bien été pris en compte,merci\');window.location.replace(\'http://xxxxx.net\')</script>';
Pour info, PHP ne cherchera pas les caractères dans le message ni dans l'URL.
<?php
$mail="BOITE MAIL"; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
$nom=$_POST['nom'];
$email=$_POST['email'];
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html="
Nom:$nom <br />
email:$email <br/>;
//==========
//=====Création de la boundary
$boundary = '-----='.md5(rand());
//==========
//=====Définition du sujet.
$sujet = 'Inscription a la Newsletter !';
//=========
//=====Création du header de l'e-mail.
$header = 'From: \'Me\'<BOITE MAIL>'.$passage_ligne;
$header.= 'Reply-to: \'Me\'<BOITE MAIL>'.$passage_ligne;
$header.= 'MIME-Version: 1.0'.$passage_ligne;
$header.= 'Content-Type: multipart/alternative;'.$passage_ligne.'boundary=\"$boundary\''.$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= 'Content-Type: text/plain; charset=\'ISO-8859-1\''.$passage_ligne;
$message.= 'Content-Transfer-Encoding: 8bit'.$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne.'--'.$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= 'Content-Type: text/html; charset=\'ISO-8859-1\''.$passage_ligne;
$message.= 'Content-Transfer-Encoding: 8bit'.$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne.'--'.$boundary.'--'.$passage_ligne;
$message.= $passage_ligne.'--'.$boundary.'--'.$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
echo '<script>alert(\'Votre inscription à bien été pris en compte,merci\');window.location.replace(\'http://xxxxx.net\')</script>';
?>
merci de ne pas oublier de mettre résolu lorsque cela est le cas ou de dire résolu quand vous ne pouvez pas !
+1 permet d'aider les autres !
----------------------------
[Aimer ce n'est pas renoncer à sa liberté, c'est lui donner un sens.]
Je t'invite donc à passer le thread en résolu.
Tout vient à point à qui sait attendre
~~ Cr3u7z0u ~~