par
nico44530 » 22 mai 2014, 21:03
Bonjour,
Dans mon formulaire, j'aimerais que si un membre insère du html par exemple : <a href="http://www.google.fr">Google</a>
J'aimerais que ça affiche les balises et non Google.
L'insertion prend en compte les balises html, donc si j'insère des chevrons sans les fermer, ça dérègle tout mon code
J'ai essayé avec htmlentities, htmlspecialchars, ça ne fonctionne pas, voici mon code :
J'utilise html_entity_decode, sinon les accents et caractères spéciaux ne s'affichent pas correctement, mais je pense que c'est dû à ça mon problème
function createCom($user_id,$coms_feed,$coms_text){
$coms_text = trim(htmlentities($_POST['coms_text']));
if(isset($coms_text) && !empty($coms_text)){
$resultat = Bdd::connect() -> prepare(INSERT.USERSZ_COMS.' (user_id, coms_feed, coms_text, coms_date) VALUES (:user_id, :coms_feed, :coms_text, NOW())');
$resultat -> execute(array('user_id' => $user_id,'coms_feed' => $coms_feed,'coms_text' => trim(html_entity_decode($coms_text))));
$resultats = Bdd::connect() -> prepare(SELECT.ALL.USERS_FEED.JOIN.USERSZ_COMS.' ON users_feed.feed_id = users_coms.coms_feed'.JOIN.'users ON users_coms.user_id = users.id');
$resultats -> execute();
$result = $resultats -> fetch(PDO::FETCH_ASSOC);
$avatar = $_SERVER['DOCUMENT_ROOT'].'/users/upload/avatars/'.$result['user_id'].'.jpg';
$avatarDefault = $result['sexe'] == 'homme' ? 'homme.jpg' : 'femme.jpg';
echo '
<div class="comsContainer">
<div class="comBorder"></div>
<div class="comAvatar"><img src="users/upload/avatars/';if(file_exists($avatar)){echo $result['user_id'].'.jpg';} else {echo $avatarDefault;}echo '" height="34" width="34" alt="" /></div>
<div class="comContent">
<a href="'.$result['pseudo'].'" class="comName">'.majuscule($result['prenom']).' '.majuscule($result['nom']).'</a>
<div class="comText"><i class="arrowCom"></i>'.nl2br(smiley($result['coms_text'])).'</div>
</div>
</div>';
} else {
return false;
}
}
Merci d'avance
Bonjour,
Dans mon formulaire, j'aimerais que si un membre insère du html par exemple : <a href="http://www.google.fr">Google</a>
J'aimerais que ça affiche les balises et non Google.
L'insertion prend en compte les balises html, donc si j'insère des chevrons sans les fermer, ça dérègle tout mon code :?
J'ai essayé avec htmlentities, htmlspecialchars, ça ne fonctionne pas, voici mon code :
J'utilise html_entity_decode, sinon les accents et caractères spéciaux ne s'affichent pas correctement, mais je pense que c'est dû à ça mon problème :(
[php]function createCom($user_id,$coms_feed,$coms_text){
$coms_text = trim(htmlentities($_POST['coms_text']));
if(isset($coms_text) && !empty($coms_text)){
$resultat = Bdd::connect() -> prepare(INSERT.USERSZ_COMS.' (user_id, coms_feed, coms_text, coms_date) VALUES (:user_id, :coms_feed, :coms_text, NOW())');
$resultat -> execute(array('user_id' => $user_id,'coms_feed' => $coms_feed,'coms_text' => trim(html_entity_decode($coms_text))));
$resultats = Bdd::connect() -> prepare(SELECT.ALL.USERS_FEED.JOIN.USERSZ_COMS.' ON users_feed.feed_id = users_coms.coms_feed'.JOIN.'users ON users_coms.user_id = users.id');
$resultats -> execute();
$result = $resultats -> fetch(PDO::FETCH_ASSOC);
$avatar = $_SERVER['DOCUMENT_ROOT'].'/users/upload/avatars/'.$result['user_id'].'.jpg';
$avatarDefault = $result['sexe'] == 'homme' ? 'homme.jpg' : 'femme.jpg';
echo '
<div class="comsContainer">
<div class="comBorder"></div>
<div class="comAvatar"><img src="users/upload/avatars/';if(file_exists($avatar)){echo $result['user_id'].'.jpg';} else {echo $avatarDefault;}echo '" height="34" width="34" alt="" /></div>
<div class="comContent">
<a href="'.$result['pseudo'].'" class="comName">'.majuscule($result['prenom']).' '.majuscule($result['nom']).'</a>
<div class="comText"><i class="arrowCom"></i>'.nl2br(smiley($result['coms_text'])).'</div>
</div>
</div>';
} else {
return false;
}
}[/php]
Merci d'avance