Protection champ texte forum

rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   -  
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je vien de faire un forum qui fonctionne tres bien et je voulais désormais passer a sa 'sécurisation' notament en passant la valeur de mon text area dans un htmlentities()...
le petit soucis c'est que je récupère ce genre de caractères a la réception de ma BDD :
�&e acute;�


je me disai qu'il y avai surement plusieur méthodes pour protéger les données textes d'un forum ?

quelles sont les meilleures ?
A voir également:

13 réponses

avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Utilises plutôt htmlspecialchars(), et lors de l'echo, pas dans l'enregistrement.
Si tu veux un autre conseil : désactive les magic_quotes si ton hébergeur les a activé et utilises mysql_real_escape_string() dans l'enregistrement.
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
ok ca fonctionne nikel merci.

par contre, en effet mes magic_quotes sont activées et je trouve ca plutot pratique.

jai peur du résultat si je désactive cette option, je vais devoir me battre pour placer des addslashes et stripslashes partout et cela pourrai etre long et fastidieu...

par contre prochain serveur je le ferai depuis le début ca m'aprendra a coder plus proprement surement.
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
jai peur du résultat si je désactive cette option, je vais devoir me battre pour placer des addslashes et stripslashes partout et cela pourrai etre long et fastidieu...

Tu as tord de trouver ça utile.
Certains hébergeurs les désativent et d'autre les activent.
Avec PHP6, les magics_quotes seront supprimées et elles sont obsolètes en PHP 5.3.0 et +
Et je ne vois pas ce qu'il y a de difficile à faire un mysql_real_escape_string à l'enregistrement et un stripslashes + htmlspecialchars à l'echo.
Sinon fais comme moi : utilise PDO et les requêtes préparées pour ne pas avoir à faire addslashes/mysql_real_escape_string et stripslashes même avec les magic_quotes désativées.
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
jai peur de ne pas avoir le meme niveau que toi, je débute dans le dévelopement et j'aprends seul a l'aide de conseils dans ce forum et autres tutos que jai parfois bien du mal a comprendre :)

je vais essayer de m'y coller tant bien que mal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
juste pour etre sur avant de mettre a jour mes pages a ta facon

j'envoie dans ma base comme ca :
$nom = mysql_real_escape_string($_POST['nom']);
$prenom = mysql_real_escape_string($_POST['prenom']);

insert into base nom prenom etc..

et je récupère mes données comme ca :
$nom = htmlspecialchars(stripslashes($data['nom']));
$prenom = htmlspecialchars(stripslashes($data['prenom']));

echo $nom." ".$prenom etc..

c'est bien ca ?
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Oui.
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
le fait de mettre des slashes dans les données de ma base me pose des soucis pour récupérer les infos...

si dans ma table jai :

titre = c\'est cool

en faisant une recherche du genre ...WHERE titre='c\'est cool' ....

cela ne me renvoie rien du tout :( ca viendrai donc de ma base ou quoi ?
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Utilises plutôt des guillemets pour entourer tes chaines de caractères dans tes requêtes SQL.
Et tu écris tes requêtes entre apostophes.
$chaine = 'c\'est cool';
$sql = 'SELECT * FROM table WHERE titre = "'.addslashes($chaine).'"';
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
en fait il ne faut pas qu'on retrouve des slashes a l'intérieur de la table a la fin d'un enregistrement si ?
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Si tu l'enregistres avec addslahes ... donc oui.
Et comme dans on applique addslashes sur la chaine 'c\'est cool', ça revient au même que ce qu'il y a dans la table.
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
alors jai un soucis dans ma base

des lors que je rentre des infos avec slashes dans mes tables la base ne me retourne pas l'info meme sur des requettes tres simples

je vais changer de serveur et de base SQL ca ira mieu sinon jy arriverai jamais si je reste chez FREE..

c'est bien pour débuter mais en fait cela n'aprend pas la polyvalence ce genre de trucs (magic quotes )
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
jai pris un serveur OVH, jai paramétré les magic quotes sur off
mais jai toujours un soucis, il ne me retourne pas les infos slashées.

WHERE forum="c\'est royal" ne me retourne rien meme si jai un enregistrement forum = c\'est royal
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
apres plusieur tests jvien de voir qu'avec c\\'est royal ca fonctione
0