Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 14h56   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut html dans le mail (PHP) qui fait échouer

Bonjour,

si je rajoute un lien html dans le texte du mail :
Code :
$texte='Il y a une nouvelle sortie sur le <a href="http://www.rocandco.com">site</a>. Allez-y pour vous inscrire.';
au lieu de
Code :
$texte='Il y a une nouvelle sortie sur le site. Allez-y pour vous inscrire.';
, l'envoi du mail échoue : le texte du mail s'arrête à href= ; bien que j'ai spécifié le format html dans le header :
Code :
$from.="Content-Type: text/html; charset= utf-8\n";
et de plus le header lui-même est perturbé : l'expéditeur n'apparaît plus, alors que j'ai mis dans le header:
Code :
$from="From: ".$prenom." ". $nom."<".$mail.">\r\n";
. Qu'est-ce qui ne va pas ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 15h00   #2
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Que fais-tu de ta variable $texte ?

Il semble que ta chaîne s'arrête à ta guillemet double... Surement un problème d'échappement de carcatères spéciaux.
__________________
  • Mon blog PHP : http://blog.alterphp.com
  • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 16h45   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Oui, j'y avais pensé, mais avec ça :
Code :
$texte='Il y a une nouvelle sortie sur le <a href=\"http://www.rocandco.com\">site</a>. Allez-y pour vous inscrire.';
c'est pareil...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 17h35   #4
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Et donc que fais-tu de ta variable $texte ? C'est le code qui l'utilise qui va permettre de savoir ce qui la modifie, ou ce qui l'interprète...
__________________
  • Mon blog PHP : http://blog.alterphp.com
  • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 17h43   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
En fait, je la passe à un autre serveur :
Code :
<iframe frameborder=0 src="http://vercorshandisport.org/testmail/mail.php?dest=<?=$adresse?>&sujet=<?=$sujet?>&message=<?=$texte?>&from=<?=$from?>" ></iframe>
car l'envoi de mail ne marche pas là où c'est et sur cet autre serveur :
Code :
1
2
3
4
5
6
7
8
9
<?php 
 
$to=$_GET['dest'];
$subject=$_GET['sujet'];
$msg=$_GET['message'];
$from=$_GET['from'];
 
mail($to, $subject, $msg, $from);
?>
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 09h36   #6
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Toutes les variables que tu passes dans des URL, il faut échapper les caractères spéciaux du HTML :

Code :
<iframe frameborder=0 src="http://vercorshandisport.org/testmail/mail.php?dest=<?=htmlentities($adresse)?>&sujet=<?=htmlentities($sujet)?>&message=<?=htmlentities($texte)?>&from=<?=htmlentities($from)?>" ></iframe>
Pour les optioons d'encodage de cette fonction, voir la doc officielle.
__________________
  • Mon blog PHP : http://blog.alterphp.com
  • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 11h07   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci pour l'info ; maintenant, le texte est complet et l'émetteur est bon, mais le texte est même trop long ! Je n'arrive pas à enlever les slashes devant les guillemets :
Citation:
Il y a une nouvelle sortie sur le <a href=\"http://www.rocandco.com\">site</a>.
Allez-y pour vous inscrire.
et le code, c'est ça :
Code :
1
2
3
4
5
$texte='Il y a une nouvelle sortie sur le <a href="http://www.rocandco.com">site</a>. Allez-y pour vous inscrire.';
$sujet="Nouvelle sortie escalade Rocandco";
?>
<iframe frameborder=0 src="http://vercorshandisport.org/testmail/mail.php?dest=<?=htmlentities($adresse)?>&sujet=<?=htmlentities($sujet)?>&message=<?=htmlentities($texte)?>&from=<?=htmlentities($from)?>" ></iframe>
<?php
Ca vient sûrement du fait que l'on passe $texte dans htmlentities, mais si on le retire, ça ne marche plus, donc comment faire ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 13h51   #8
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
J'ai pû enlever les slashes : le texte étant tout le temps le même, je l'ai mis dans mail.php, mais en fait, le problème était plus grave que ça : on aurait pas dû voir le href ! Et comme le header ne change jamais non plus, j'ai résolu ça en l'initialisant dans mail.php...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h37.


 
 
 
 
Partenaires

Hébergement Web