Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 11/10/2011, 17h48   #1
Membre régulier
 
Inscription : décembre 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 493
Points : 90
Points : 90
Par défaut Caractères parasites dans une newsletter générée

Bonjour, je me tourne vers vous pour résoudre un problème dont je ne trouve pas la solution. J'ai fais en php un système de newsletter, qui est envoyé à plusieurs destinataires. J'ai d'un côté le fichier newsletter.php qui crée le gabarit et que j'insère via le tampon, et de l'autre une page qui envoie la newsletter.

Le problème que je rencontre est que, lors de l'envoi, il y a des caractères parasites qui se rajoutent dans le chemin d'accès aux images. Sachant :
1. en local avec Wamp il n'y a pas de problème, mais sur le serveur en Linux oui
2. les images sont insérées dans le fichier via une boucle en fonction d'une valeur en base de données, mais le caractère se trouve uniquement sur une seule ligne à chaque fois, ce qui n'est pas logique !

Voici comment j'insère les images sur le fichier newsletter.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
for ($th=0; $th<12; $th++) {
	switch ($th) {						  
	   case 0: $theme = 'Image1'; break;
	   case 1: $theme = 'Image2'; break;
	   case 2: $theme = 'Image3'; break;
	   case 3: $theme = 'Image4'; break;
	   case 4: $theme = 'Image5'; break;
	   case 5: $theme = 'Image6'; break;
	   case 6: $theme = 'Image7'; break;
	   case 7: $theme = 'Image8'; break;
	   case 8: $theme = 'Image9'; break;
	   case 9: $theme = 'Image10'; break;
	   case 10: $theme = 'Image11'; break;
	   case 11: $theme = 'Image12'; break;
	}
if (substr($varLettre['thematique'], $th, 1)==1) { ?><?php echo $theme; ?>&nbsp;<img src="<?php echo 'http://www.monsite/img/liq/th'.$th.'.jpg'; ?>" width="10px" height="10px" align="absmiddle" border="0" /><br /><?php }
} ?>
Et l'envoi se passe de la sorte :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
foreach ($varTab as $users) {					
	$titre = "Newsletter n°".$varNumero;
	$from = "From: MOI<newsletter@monsite.fr>\n";
	$from .= "Mime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\n";
 
	ob_start();
	include 'newsletter.php';
	$contenu = ob_get_clean();
 
	$contenu = str_replace('[NOM]', $users[1], $contenu);
	$contenu = str_replace('[MAIL]', $users[0], $contenu);
 
	echo $contenu;
 
	if (mail($users[0], $titre, $contenu, $from)) {
		echo "<li style='list-style-type:square;list-style-position:inside;'>Mail envoyé avec succés à ".$users[1]." (".$users[0].")</li>";
	} else {
		echo "<li style='list-style-type:square;list-style-position:inside;'>Erreur d'envoi pour ".$users[1]." (".$users[0].")</li>";
	}
	ob_end_flush();
} ?>
Je me retrouve donc avec un mail qui contient disons 5 liens vers des images, avec l'url http://www.monsite/img/liq/th0.jpg à http://www.monsite/img/liq/th5.jpg, et dans le lot, il y en a toujours une qui contient ou un %20 ou un + dans l'url.

Une idée d'où vient le problème ? Merci d'avance
nicolas2603 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 17h54   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
%20 correspond au caractère espace. De la même manière que dans une URL, l'espace est remplacé par un +.
Tu dois donc avoir une URL pour tes images qui contient un espace...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 19h01   #3
Membre régulier
 
Inscription : décembre 2006
Messages : 493
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 493
Points : 90
Points : 90
Ce que j'ai pensé, mais je suis sûr que non, après avoir vérifié dix fois.
De plus, l'url est insérée par la boucle et est toujours la même, il n'y a que le nom du fichier image qui change. Donc je devrais avoir x fois le même caractère si c'était dû à ça, alors que ça n'arrive qu'une seule fois.
Et jamais au même endroit de la chaine, par ex j'ai observé une fois :
Code :
1
2
3
4
http://www.monsite/img/liq/th0.jpg
http://www.monsite/img/liq/th1.jpg
http://www.monsite/img/liq/t%20h2.jpg
http://www.monsite/img/liq/th3.jpg
une fois :
Code :
1
2
3
4
http://www.monsite/img/liq/th0.jpg
http://www.monsite/img/liq/th1.jpg
http://www.monsite/img/liq/th2.jpg
http://www.mo+nsite/img/liq/th3.jpg
etc...
nicolas2603 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h30.


 
 
 
 
Partenaires

Hébergement Web