PHP : str_replace ne fonctionne pas


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

PHP : str_replace ne fonctionne pas

Message le Jeu Jan 12, 2006 17:04

Bonjour à tous,


Voici un petit bout de code, sur lequel je me casse les dents depuis un bon moment, vous aurez sans doute un oeil plus avisé que moi pour trouver le problème :

Code: Tout sélectionner
                        $string = traduc_msg(29);
         $original = array("[SERVER]","[EMAIL]","[NUMAUTO]");
         $replace = array($server, $email, $num_auto);
         $txt = str_replace($original, $replace, $string);


traduc_msg est une fonction qui va chercher un message ds un champ de ma base de données.

Le message est de la forme :
Vous êtes inscrit à la newsletter .\n\nVous avez le choix de recevoir votre newsletter au format HTML:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=1&email=[EMAIL]&id=[NUMAUTO] ou au format TEXTE:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=0&email=[EMAIL]&id=[NUMAUTO] \n\nSi vous ne souhaitez plus recevoir notre newsletter LicencePhoto, veuillez cliquez sur le lien suivant : \n\n - http://".[SERVER]."/Newsletter/init.php?inscrire_mail=0&email=[EMAIL]&id=[NUMAUTO]\n\n


après je l'envoie par email :
Code: Tout sélectionner
envoie_mail($email,$title,$txt);



Mais dans le mail que je reçois ca donne ca, ya un petit truc qui doit m'échapper :

Vous êtes inscrit à la newsletter.\n\nVous avez le choix de recevoir votre newsletter au format HTML:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=1&email=[EMAIL]&id=[NUMAUTO] ou au format TEXTE:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=0&email=[EMAIL]&id=[NUMAUTO] \n\nSi vous ne souhaitez plus recevoir notre newsletter LicencePhoto, veuillez cliquez sur le lien suivant : \n\n - http://".[SERVER]."/Newsletter/init.php?inscrire_mail=0&email=[EMAIL]&id=[NUMAUTO]\n\nLicencePhoto© vous remercie.


Merci d'avance à tous


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Jeu Jan 12, 2006 17:13

lol

J'ai ajouté ca pour tester :

Code: Tout sélectionner
$txt = str_replace("[EMAIL]",$email,$txt);


Et ca marche, docn je suppose qu'il doit y avoir un gros bug que je ne vois pas .

Si vous le voyiez merci d'avance


fabor
WRInaute discret
WRInaute discret
 
Messages: 152
Inscription: 17 Mar 2005

Message le Jeu Jan 12, 2006 17:18

ce n'est pas un probleme d'antislashage de characteres delimiteurs. (je ne sais pas si les [ doivent l'etre)
c'est à tout hasard


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Jeu Jan 12, 2006 17:27

Je pense pas, j'utilise ce système ds de nombreuses parties de mon site et ca marche parfaitement , mais c'est juste quand c'est dans une url que ca bug apparemment...


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Jeu Jan 12, 2006 17:47

Utilises tu une version PHP antérieure à la version 4.0.5 ?

str_replace prend en compte un tableau en paramêtre 1 uniquement depuis cette version (qui date quand meme donc ca m'étonnerait)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités