Problème PHP

Le
Serge Nazarian
Bonjour,

Voici un bout de code PHP :

<?php
$email1='serge.nazarian@fai1.fr';
echo "ceci ne marche pas <$email1>";
echo "ceci marche < $email1 >";

$email2="serge.nazarian@fai2.fr";
echo "ceci ne marche pas <$email2>";
echo "ceci marche < $email2 >";
?>

Qui peut m'expliquer pourquoi ce programme renvoie :

ceci ne marche pas
ceci marche < serge.nazarian@fai1.fr >
ceci ne marche pas
ceci marche < serge.nazarian@fai2.fr >

autrement dit pourquoi < perturbe la chaîne de caractères s'il n'est
pas suivi d'une espace.
Moi, je cherche à afficher <serge.nazarian@fai.fr> sans espace.
Quelqu'un aurait-il une solution ?

Merci pour toute aide.
Cordialement,

--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Otomatic
Le #26410375
Serge Nazarian
autrement dit pourquoi < perturbe la chaîne de caractères s'il n'est

Parce que c'est le signe de d'ouverture d'une balise HTML et que pour
que ce ne soit pas interprété comme tel, ce doit être converti en
entitée : http://fr2.php.net/manual/fr/function.htmlspecialchars.php
$email2="";
echo "ceci marche à tous les coups $lt;$email2$gt;rn";
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.net
Serge Nazarian
Le #26410376
Otomatic a écrit le 22/09/2016 :
Serge Nazarian
autrement dit pourquoi < perturbe la chaîne de caractères s'il n'est

Parce que c'est le signe de d'ouverture d'une balise HTML et que pour
que ce ne soit pas interprété comme tel, ce doit être converti en
entitée : http://fr2.php.net/manual/fr/function.htmlspecialchars.php
$email2="";
echo "ceci marche à tous les coups $lt;$email2$gt;rn";

Merci.
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Sauvemac
Le #26410397
Le 22/09/2016 à 16:20, Otomatic a écrit :
autrement dit pourquoi < perturbe la chaîne de caractères s'il n'est

Parce que c'est le signe de d'ouverture d'une balise HTML et que pour
que ce ne soit pas interprété comme tel, ce doit être converti en
entitée : http://fr2.php.net/manual/fr/function.htmlspecialchars.php
$email2="";
echo "ceci marche à tous les coups $lt;$email2$gt;rn";

Un "lapsus clavis" pour &lt; ?
Otomatic
Le #26410396
Sauvemac
Un "lapsus clavis" pour &lt; ?

Et oui, pourtant le $ et le & ne sont pas côte à côte.
Donc :
echo "ceci marche à tous les coups &lt;$email2&gt;rn";
Olivier Miakinen
Le #26410408
Le 22/09/2016 18:43, Otomatic a écrit :
Un "lapsus clavis" pour &lt; ?

Eh oui, pourtant le $ et le & ne sont pas côte à côte.
Donc :
echo "ceci marche à tous les coups &lt;$email2&gt;rn";

On va dire que ça marche si le code contient ça au début :
$lt = "&lt;";
$gt = ">"; // ou $gt = "&gt;" mais ">" n'est pas réservé
Cela dit, je ne vois pas bien ce que la question de Serge faisait
dans fr.comp.mail : elle aurait dû être dans fr.comp.lang.php, ou
alors dans fr.comp.infosystemes.www.auteurs s'il avait soupçonné
que l'origine du problème était du HTML et non du PHP.
--
Olivier Miakinen
Serge Nazarian
Le #26410445
Olivier Miakinen a écrit le 22/09/2016 :
Le 22/09/2016 18:43, Otomatic a écrit :
Un "lapsus clavis" pour &lt; ?

Eh oui, pourtant le $ et le & ne sont pas côte à côte.
Donc :
echo "ceci marche à tous les coups &lt;$email2&gt;rn";

On va dire que ça marche si le code contient ça au début :
$lt = "&lt;";
$gt = ">"; // ou $gt = "&gt;" mais ">" n'est pas réservé
Cela dit, je ne vois pas bien ce que la question de Serge faisait
dans fr.comp.mail : elle aurait dû être dans fr.comp.lang.php, ou
alors dans fr.comp.infosystemes.www.auteurs s'il avait soupçonné
que l'origine du problème était du HTML et non du PHP.

Bonjour,
Peut-être par ce que je cherche à envoyer un courriel (un mail en
franglais) dans un script PHP et que j'ai du mal avec le champ headers
(dont je veux bien qu'on m'explique toutes les subtilités ici ou
ailleurs).
Cordialement.
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Olivier Miakinen
Le #26410456
Le 23/09/2016 08:54, Serge Nazarian a écrit :
[...] je cherche à envoyer un courriel (un mail en
franglais) dans un script PHP et que j'ai du mal avec le champ headers
(dont je veux bien qu'on m'explique toutes les subtilités ici ou
ailleurs).

Ok, je redirige vers fr.comp.lang.php.
Je suppose que tu utilises cette fonction d'envoi de courriel en PHP :
exactement ?
--
Olivier Miakinen
Jean Francois Ortolo
Le #26410461
Le 23/09/2016 à 11:34, Olivier Miakinen a écrit :
Le 23/09/2016 08:54, Serge Nazarian a écrit :
[...] je cherche à envoyer un courriel (un mail en
franglais) dans un script PHP et que j'ai du mal avec le champ headers
(dont je veux bien qu'on m'explique toutes les subtilités ici ou
ailleurs).

Ok, je redirige vers fr.comp.lang.php.
Je suppose que tu utilises cette fonction d'envoi de courriel en PHP :
exactement ?


Bonjour Monsieur Mazarian
C'est vrai que la fonction php mail() pose des problèmes pratiques de
fiabilité d'envoi de mails.
Je préconise la classe php : PHPMailer.
Avec cette classe PHPMailer, envoyer des mails est un jeu d'enfant.
Amicalement.
Jean FRançois Ortolo
Eric Demeester
Le #26410567
Bonjour,
Jean Francois Ortolo (Fri, 23 Sep 2016 12:43:20 +0200 -
fr.comp.lang.php) :
C'est vrai que la fonction php mail() pose des problèmes pratiques de
fiabilité d'envoi de mails.

Pour ma part, je l'utilise depuis bien des années et je n'ai jamais
rencontré de problème, mais il est vrai qu'elle nécessite de la rigueur,
en particulier dans la définition des en-têtes des courriers (celles par
défaut sont insuffisantes), et qu'elle peut s'avérer complexe à utiliser
dès qu'on a des besoins un peu compliqués (html, pièces jointes, etc.).
Je préconise la classe php : PHPMailer.
Avec cette classe PHPMailer, envoyer des mails est un jeu d'enfant.

Cette classe est effectivement très pratique, elle permet par exemple,
contrairement à la fonction mail(), de faire appel très simplement à un
serveur SMTP si on en a un à disposition, alors qu'avant, j'étais obligé
de programmer de tels envois entièrement à la main.
Bref, je te rejoins, si cette classe est disponible dans l'environnement
utilisé (point à vérifier si le site est sur un hébergement mutualisé),
mieux vaut l'utiliser plutôt que la fonction mail().
On peut trouver un didacticiel et des liens de téléchargment ici :
http://stephaneey.developpez.com/tutoriel/php/phpmailer/
Otomatic
Le #26410579
Eric Demeester
On peut trouver un didacticiel et des liens de téléchargment ici :
http://stephaneey.developpez.com/tutoriel/php/phpmailer/

Je plusssoie énergiquement.
Cela fait des années que j'utilise la class PhpMailer pour mes
formulaires de contact.
Ça fonctionne parfaitement avec des smtp authentifiés chez Gandi, OVH ou
1and1. Et il n'y a pas de raison que ça ne fonctionne pas pour les
autres.
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.net
Publicité
Poster une réponse
Anonyme