balise non interpretées

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : balise non interpretées

par Ryle » 21 avr. 2007, 14:47

Le fait de l'enlever évitera (normalement) le problème pour les messages à venir... en revanche tous les messages précédents ont été transformés en entité html et enregistrés comme tel en base. Il va donc te falloir les y corriger :)

Et éventuelement si ce n'est pas ça, montre nous également le bout de code qui vient lire et afficher le message :)

par rupper » 21 avr. 2007, 14:30

Bah en fait meme en l'enlevant j'ai toujours les balises html.

par ruper » 21 avr. 2007, 14:26

Arf, je l'avais pas vu^^.
J'ai meme eu du mal a le voir la^^.

Désolé.

par jojolapine » 21 avr. 2007, 14:25

non, je n'utilise pas htmlentities, ni aucune autre fonction de ce style.
et ça:
$reponse=htmlentities($reponse); 
c'est quoi c'est du poulet? :evil:

par rupper » 21 avr. 2007, 14:11

Bonjour,

Comme promis, voila mon code php:
<?php 
$reponse=$_POST['reponse'];
$mp=$_POST['mp'];
	$reponse = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $reponse);
    $reponse = preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $reponse);
    $reponse = preg_replace('!\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]!isU', '<span style="color:$1">$2</span>', $reponse);
    $reponse = preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $reponse);
	$reponse = preg_replace('!\[u\](.+)\[/u\]!isU', '<u>$1</u>', $reponse);
    $reponse = preg_replace('!\[exp\](.+)\[/exp\]!isU', '<sup>$1</sup>', $reponse);
    $reponse = preg_replace('!\[grand\](.+)\[/grand\]!isU', '<h1>$1</h1>', $reponse);
    $reponse = preg_replace('!\[petit\](.+)\[/petit\]!isU', '<h6>$1</h6>', $reponse);
	$reponse=htmlentities($reponse);
$time=date('H:i');
if ( $reponse!=NULL){
$mp=$reponse.'
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
Initial mail :

from : '.
$destinat.'
date : '.
$date.' à '.$time.'
titre : '.
$titre.'
message : 
'.
$mp;
mysql_query("insert into table_post values('','".$date."','".$titre."','".$mp."','".$id_papa."','".$expedit."','".$destinat."','".$lu."')");
header("location: mp.php");

?>
Merci.

par rupper » 20 avr. 2007, 16:39

Arf, je ne suis pas chez moi, je n'ai pas le code en tete. Demain, je posterai le code.
merci

par Ryle » 20 avr. 2007, 16:22

hmm.. tu peux nous montrer le code source du message ?

par rupper » 20 avr. 2007, 16:19

non, je n'utilise pas htmlentities, ni aucune autre fonction de ce style.
en gros, au niveau de la messagerie du site, on peut mettre un lien, ou ecrire en gras, e, italique... il y a des liens (un peu comme dans ce site). on clique et on obtient par exemple:
ecrire votre text ici. en validant, un script php va transformer ces en <strong> (pareil pour toutes les autres balises). Ensuite en visualisant le message, on voit bien <strong>, <em> ou encore <a href=" " > </a>.
comment faire alors?

merci

par Ryle » 20 avr. 2007, 16:03

Ton problème vient vraissemblablement du fait que dans ta base (ou lors de la lecture de celle ci), les données enregistrées sont transformées en entitées html (avec htmlentities() par exemple) pour éviter les risques et les abus d'insertion de code html.

Du coup ton lien n'est probablement pas <a href="..."> mais quelque chose qui doit ressembler à <a href="..."< que le navigateur se contente d'afficher au lieu d'interpréter... :)

par rupper » 20 avr. 2007, 15:56

Alors j'ai testé mais ca n'a rien fait.
Avez vous une autre idée svp.

merci

par thehawk » 18 avr. 2007, 22:16

Avec quatre sucres, merci.
pourquoi ??? j'ai pas compris ca s'adresse a qui ?

j'ai corrigé mes fautes ...

par Hubert Roksor » 18 avr. 2007, 22:04

Avec quatre sucres, merci.

par thehawk » 18 avr. 2007, 21:52

en essayant de remplacer les ' par des "

edit : je corrige les fautes ... encore désolé ....

par rupper » 18 avr. 2007, 21:38

Mais si je n'utilise pas la fonction mail, mais une base de donnees?

par @rthur » 18 avr. 2007, 20:47

Bonjour,

Il faut que tu spécifies explicitement dans les entête de ton mail que ton message est au format HTML...
Regarde l'exemple de la doc PHP, il est assez explicite