Problème dans mon script php
Résolu/Fermé
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
-
18 juin 2008 à 23:28
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012 - 26 juin 2008 à 19:35
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012 - 26 juin 2008 à 19:35
A voir également:
- Problème dans mon script php
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
71 réponses
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 17:10
19 juin 2008 à 17:10
D'ac, A+
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 17:12
19 juin 2008 à 17:12
En effet j'ai un problème :P
J'ai utilisé un petit parseur que voici =>
Seulement il n'y a que le lien qui marche! Les autres ne marchent pas! Ai-je mal introduit mon mail (html et tout ça?) En tous cas ça marche pas!
Pour info voici le code que j'ai envoyé:
J'ai utilisé un petit parseur que voici =>
$contenu = nl2br($contenu); $contenu = preg_replace('#(.+)#isU', '<strong>$1</strong>', $contenu); $contenu = preg_replace('#(.+)#isU', '<em>$1</em>', $contenu); $contenu = preg_replace('#(.+)#isU', '<u>$1</u>', $contenu); $contenu = preg_replace('#<couleur=(red|green|blue|yellow|purple|olive)>(.+)</couleur>#isU', '<span style="color:$1">$2</span>', $contenu); $contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);
Seulement il n'y a que le lien qui marche! Les autres ne marchent pas! Ai-je mal introduit mon mail (html et tout ça?) En tous cas ça marche pas!
Pour info voici le code que j'ai envoyé:
<gras>azer< /gras> <italique>azer< /italique> <souligne>azer< /souligne> http ://useful.and.free.fr <couleur=red>azer< /couleur>PS: j'ai volontairement mis des epsaces parce que sinon ça appliquait les modifs !
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 17:54
19 juin 2008 à 17:54
Pourquoi tu n'utiliserais pas ça plutôt:
http://www.manuelphp.com/php/function.str-replace.php
Un truc du genre strreplace("[b]","<strong>",$chaine);
http://www.manuelphp.com/php/function.str-replace.php
Un truc du genre strreplace("[b]","<strong>",$chaine);
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 18:15
19 juin 2008 à 18:15
seulement dans mon cas il faut que je remplace pas seulement [b] mais [b]********[/b] et je ne sais pas si ça marche. Je pense pas parce que preg-replace s'utilise pour les regex et pas str-replace (enfin je crois) et moi j'ai besoin de regex! Nan? tu pensais à autre chose?
edit: ah nan tu voulais dire remplacer [b] par <strong> et remplacer [/b] par </strong> indépendamment? Ca pourrait très bien marcher aussi mais je commence à me demander si le problème ne vient pas du fait que c'est un mail et que les serveurs suppriment eux aussi le html. Nan? Ou alors que j'ai mal utilisé mes headers et donc le html ne peut pas marcher
edit: ah nan tu voulais dire remplacer [b] par <strong> et remplacer [/b] par </strong> indépendamment? Ca pourrait très bien marcher aussi mais je commence à me demander si le problème ne vient pas du fait que c'est un mail et que les serveurs suppriment eux aussi le html. Nan? Ou alors que j'ai mal utilisé mes headers et donc le html ne peut pas marcher
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 18:44
19 juin 2008 à 18:44
Je ne sais pas pour ton serveur. Revérifie ton header dans le pire des cas. Mais si le lien <a> fonctionne, c'est surement autre chose.
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 19:16
19 juin 2008 à 19:16
Non justement mon lien <a> ne fonctionne qu'à moitié :P
voila mon header:
voila mon header:
$headers ="From: ".$exp . "\r\n"; $headers .='MIME-Version: 1.0' . "\r\n"; $headers .='Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .='Content-Transfer-Encoding: 8bit';
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 22:39
19 juin 2008 à 22:39
Pense à regarder ici (et l'histoire du \ avant les " et les ' )
http://www.asp-php.net/ressources/bouts_de_code.aspx?id=35
http://www.asp-php.net/ressources/bouts_de_code.aspx?id=35
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
19 juin 2008 à 23:01
19 juin 2008 à 23:01
J'ai pourtant les mêmes header que dans le lien sauf que lui les apellent $from et moi $headers et que il met \n et moi \r\n et que j'ai une ligne en plus:
$headers .='Content-Transfer-Encoding: 8bit';
Est ce qu'il faut que je supprime cette ligne? ou que j'enleve les \r?
edit: aucune des deux solutions ne marche! je suis désespéré :p
A moins que ça vienne de la concaténation des headers mais j'ai pas l'impression!
$headers .='Content-Transfer-Encoding: 8bit';
Est ce qu'il faut que je supprime cette ligne? ou que j'enleve les \r?
edit: aucune des deux solutions ne marche! je suis désespéré :p
A moins que ça vienne de la concaténation des headers mais j'ai pas l'impression!
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
19 juin 2008 à 23:28
19 juin 2008 à 23:28
Non, ton header m'a l'air correct comme tu l'avais fait. Tu avais juste oublié le FROM dans ton premier code mais là tu l'as ajouté donc n'y touche plus. J'ai jamais essayé d'envoyé du HTML par courrier encore. Mais tu peux essayé ça.
Une fois ton HTML placé (donc remplacement de tes autres balilses), tu fais ça (juste avant d'envoyer):
strreplace('"','\"',$chaine);
Car n'oublie pas que php n'aime pas les " et les ' mal placé (ça le fait passé du mode php au mode texte lol). L'avais-tu essayé toi ce truc d'ajouter des \? Car ça se pourrait que ce soit ça. ^^
Une fois ton HTML placé (donc remplacement de tes autres balilses), tu fais ça (juste avant d'envoyer):
strreplace('"','\"',$chaine);
Car n'oublie pas que php n'aime pas les " et les ' mal placé (ça le fait passé du mode php au mode texte lol). L'avais-tu essayé toi ce truc d'ajouter des \? Car ça se pourrait que ce soit ça. ^^
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
22 juin 2008 à 18:46
22 juin 2008 à 18:46
Désolé j'etais assez occupé ces derniers temps. Je viens d'essayer ce que tu m'as conseillé mais ça na marche pas. En fait j'ai l'impression que le probleme vient du preg replace parce que quand je met mon code dans mon message (***) je retrouve *** dans mon message alors que si ça venait du html je trouverais <strong>***</strong>. Pourtant j'ai pris la regex dans le tutorial du site du zéro et il devrait marcher! je ne comprend plus rien la!
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 17:06
23 juin 2008 à 17:06
J'ai essayé avec strreplace pour garder les sauts de lignes chez moi et d'autres trucs et il marche impec tu sais. Jamais essayé l'autre.
Je viens d'essayer en remplacant mes preg_replace par des str_replace et ça marche pas mieux! Voila ce que j'ai mis (c'est pas au point pour les liens et les couleurs) :
Et ça marche toujours pas! (http://useful.and.free.fr/blague.php)
Je comprend rien parce que meme si le html marche pas dans le mail, je devrais voir <em>***</em> dans le mail et non ***!
$contenu = nl2br($contenu); str_replace("","<strong>",$contenu); str_replace("","</strong>",$contenu); str_replace("","<em>",$contenu); str_replace("","</em>",$contenu); str_replace("","<u>",$contenu); str_replace("","</u>",$contenu); str_replace('#<couleur=(white|silver|gray|black|red|maroon|lime|green|yellow|olive|blue|navy|fuchsia|purple|aqua|teal)>(.+)</couleur>#isU', '<span style="color:$1">$2</span>', $contenu); str_replace('"','\"',$contenu); $contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);
Et ça marche toujours pas! (http://useful.and.free.fr/blague.php)
Je comprend rien parce que meme si le html marche pas dans le mail, je devrais voir <em>***</em> dans le mail et non ***!
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 19:57
23 juin 2008 à 19:57
str_replace("[b]","<strong>",$contenu);
str_replace("[/b]","</strong>",$contenu);
str_replace("[em]","<em>",$contenu);
str_replace("[/em]","</em>",$contenu);
str_replace("[u]","<u>",$contenu);
str_replace("[/u]","</u>",$contenu);
Ça ira surement mieux si tu lui dis quoi remplacer :O
str_replace("[/b]","</strong>",$contenu);
str_replace("[em]","<em>",$contenu);
str_replace("[/em]","</em>",$contenu);
str_replace("[u]","<u>",$contenu);
str_replace("[/u]","</u>",$contenu);
Ça ira surement mieux si tu lui dis quoi remplacer :O
Arf je n'utilise pas le [b] mais <gras ></gras > (sans les espaces) et c'est ce que j'ai mis seulement le forum ccm doit utiliser la meme manière et a appliqué la balise au lieu de l'afficher :P
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 20:04
23 juin 2008 à 20:04
Ben même chose on s'en fout. Tu pourrais utiliser <froufrou> et </froufrou> que ce serait la même chose:
str_replace("<gras>","<strong>",$contenu);
str_replace("<gras>","<strong>",$contenu);
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 20:22
23 juin 2008 à 20:22
Oui mais ce que je voulais dire c'est que mon <gras >***</gras > il y est dans le code mais quand j'ai transféré le code sur le forum le forum a inteprété le code au lieu de l'afficher. Donc pour répondre à ta question "Ça ira surement mieux si tu lui dis quoi remplacer :O " c'est bien ce que j'ai fais seulement quand j'ai mis le code on le voit pas
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 20:22
23 juin 2008 à 20:22
EDIT : OUPS DESOLE PAS FAIS EXPRES DE POSTER
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 20:35
23 juin 2008 à 20:35
Ah, quel con LOL..
Tu sais quoi, attaque le problème en ordre. Commence par envoyé un message avec mail depuis une adresse valide à une adresse valide et écrit n'importe quoi comme contenu et tu y inclus du html correctement (n'importe quoi comme balise). Tu regardes si dans le message reçu ça fonctionne. Si ça ne fonctionne déjà pas là en partant, alors ne te casse pas la tête à chercher plus loin tant que tu n'as pas résolu ce problème.
Tu redéfinis donc ta variable $contenu à un truc du genre
$contenu= 'Ceci est un <i>joli</i> <u>petit</u> <b>test</b>!';
Si tu recois ce message avec la mise en forme correct, alors on cherchera plus loin. Si tu ne le recois pas, alors il faut chercher pourquoi ton code n'envoie pas en format HTML.
EDIT: je te traite pas de con hein.. je parlais du forum :o
Tu sais quoi, attaque le problème en ordre. Commence par envoyé un message avec mail depuis une adresse valide à une adresse valide et écrit n'importe quoi comme contenu et tu y inclus du html correctement (n'importe quoi comme balise). Tu regardes si dans le message reçu ça fonctionne. Si ça ne fonctionne déjà pas là en partant, alors ne te casse pas la tête à chercher plus loin tant que tu n'as pas résolu ce problème.
Tu redéfinis donc ta variable $contenu à un truc du genre
$contenu= 'Ceci est un <i>joli</i> <u>petit</u> <b>test</b>!';
Si tu recois ce message avec la mise en forme correct, alors on cherchera plus loin. Si tu ne le recois pas, alors il faut chercher pourquoi ton code n'envoie pas en format HTML.
EDIT: je te traite pas de con hein.. je parlais du forum :o
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 21:45
23 juin 2008 à 21:45
C'est bon ça a marché comme prévu (la mise en forme marchait) (j'ai mis a la suite de mes preg_replace le truc qui casse tout ce qu'y a vait avant
$contenu='Ceci est un <i>joli</i> <u>petit</u> <b>test</b>!';
^^ en gros on ecrit 10 lignes pour rien :P
mais sinon ça marche donc le problème vient bien des regex.
je pense que je peux redonner mon code actuel (j'ai remplacé le htmlentities par htmlspecialchars, j'ai laissé les preg_replace mais j'ai changé l'intérieur car avant il y a les htmlspecialchars donc il ne risque pas d'y avori des < et des > dedans mais ça marche toujours pas
on va dire que je met a cette adresse le code d'ici 5 minutes: http://useful.and.free.fr/code_blague.txt
En tous cas merci de suivre mon problème depuis le début, de plus on dirait qu'il ne doit pas etre si simple car tu es la seule personne a avoir posté sur deux pages :P
$contenu='Ceci est un <i>joli</i> <u>petit</u> <b>test</b>!';
^^ en gros on ecrit 10 lignes pour rien :P
mais sinon ça marche donc le problème vient bien des regex.
je pense que je peux redonner mon code actuel (j'ai remplacé le htmlentities par htmlspecialchars, j'ai laissé les preg_replace mais j'ai changé l'intérieur car avant il y a les htmlspecialchars donc il ne risque pas d'y avori des < et des > dedans mais ça marche toujours pas
on va dire que je met a cette adresse le code d'ici 5 minutes: http://useful.and.free.fr/code_blague.txt
En tous cas merci de suivre mon problème depuis le début, de plus on dirait qu'il ne doit pas etre si simple car tu es la seule personne a avoir posté sur deux pages :P