Bonjour,
voila, j'ai commencé l'écriture d'un webmail en php et me heurte déjà de plein fouet au problème suivant:
J'utilise imap_fetchbody pour récupérer les emails d'un serveur imap et cela marche très bien, mais lorsque je veux insérer le contenu du corps d'un des messages dans une table mysql, c'est là que ça marche plus... .
MSN envoie ses mails au format html et avec des fins de messages telles que cell-ci :
"_________________________________________________________________ FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/"
Or MySQL n'aime pas ça et il répond par :
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\webmail\show_inbox.php on line 113
Something is wrong in your syntax prиs de 's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/d' а la ligne 3message 2 not saved yet to inbox!"
Et ce n'est pas tant le fait que ça soit à la base un mail envoyé en html car j'ai testé d'autres providers et ça marche bien si le balisage html utilisé n'est pas trop complexe.
J'ai par exemple essayé avec mail.ru qui utilise des fins de messages comme suit :
(cf Подними себе настроение! Отправь SMS с текстом FUN пробел Твоё имя на номер
8881 - и в ответ получишь кучу смсок, которые поднимут настроение на все 100%!!!
http://r.mail.ru/cln2875/fun.mobile...mobile.fun.html
)
et ça marche très bien, ma requête d'insertion passe très bien!
En conséquence, j'ai changé par exemples les type de champs de ma table, en passant par exemple de 'text' à 'longtext' mais c'est pas mieux.
J'ai ensuite essayé strip_tags(), str_replace(), etc... pour formater le contenu de $body avant insertion dans la table et rien y fait.
Et pour finir, j'ai mysql_real_escape_string() et là, j'obtiens :
Fatal error: Call to undefined function: mysql_real_escape_string()...",
alors que j'ai bien vérrifié que j'ai l'extension mysql de chargé avec easyphp.
Peut-être qu'il y a quelquechose que je n'ai pas déclaré comme il faut;
En tout cas tout ça me paraît un peu tordu.
Toute idée de votre part sera la bienvenue,
Merci d'avance
Partager