Bdd mysql avec 000webhost = slashes devant
Résolu
LelLex
Messages postés
1628
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je viens vers vous aujourd'hui car j'ai un petit soucis avec mon Hébergeur gratuit : 000webhost et ma Base De Données : mysql.
Sur ma page /blog/index.php et /blog/article.php?id=(nombre)
Je fais une requête pour aller chercher l'article ou je fais une boucle pour aller chercher plusieurs articles ; jusque-là tout est okay !
En local, sur Wamp, quand j'avais écrit un article et que je l'affichait c'était bien. Et maintenant que j'ai mit en ligne mon site internet, si j'écris un article et que je l'affiche : j'ai des slashes devant ' et devant ".
Ma question : Pourquoi cette différence ?
Je procède de cette façon pour un article, avant d'envoyer dans la bdd, je protège avec : $contenu = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['contenu']))); et pour afficher, j'enlève les slashes avec : $contenu = stripslashes($données['contenu']);
Voilà le lien d'une des deux pages, vers mon site afin de vous montrer : https://www.000webhost.com/migrate?static=true
Merci d'avance,
Cordialement.
LelLex.
Je viens vers vous aujourd'hui car j'ai un petit soucis avec mon Hébergeur gratuit : 000webhost et ma Base De Données : mysql.
Sur ma page /blog/index.php et /blog/article.php?id=(nombre)
Je fais une requête pour aller chercher l'article ou je fais une boucle pour aller chercher plusieurs articles ; jusque-là tout est okay !
En local, sur Wamp, quand j'avais écrit un article et que je l'affichait c'était bien. Et maintenant que j'ai mit en ligne mon site internet, si j'écris un article et que je l'affiche : j'ai des slashes devant ' et devant ".
Ma question : Pourquoi cette différence ?
Je procède de cette façon pour un article, avant d'envoyer dans la bdd, je protège avec : $contenu = mysql_real_escape_string(htmlspecialchars(addslashes($_POST['contenu']))); et pour afficher, j'enlève les slashes avec : $contenu = stripslashes($données['contenu']);
Voilà le lien d'une des deux pages, vers mon site afin de vous montrer : https://www.000webhost.com/migrate?static=true
Merci d'avance,
Cordialement.
LelLex.
A voir également:
- Bdd mysql avec 000webhost = slashes devant
- Mettre 0 devant chiffre excel - Guide
- Mysql community server - Télécharger - Bases de données
- Supprimer le 0 devant un nombre excel ✓ - Forum Excel
- Arnaud veut s'adresser directement à son ami marc dans un message sur un réseau social. quel symbole doit-il placer dans son message devant le nom d'utilisateur de marc ? ✓ - Forum Loisirs / Divertissements
- Symbole spécial dans nom d'utilisateur - Forum MacOS
6 réponses
Oui, soit tu fais addslashes, soit mysql_real_escape_string, mais pas les deux sur la même chaine.
Pour désactiver magic_quotes_gpc
https://www.php.net/manual/fr/configuration.changes.php
Avec un .htaccess :
Ou bien en annulant l'effet en PHP :
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
Pour désactiver magic_quotes_gpc
https://www.php.net/manual/fr/configuration.changes.php
Avec un .htaccess :
php_flag magic_quotes_gpc off
Ou bien en annulant l'effet en PHP :
<?php function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } $_POST = stripslashes_deep($_POST); $_GET = stripslashes_deep($_GET); $_COOKIES = stripslashes_deep($_COOKIES); ?>
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
LelLex
Messages postés
1628
Date d'inscription
Statut
Membre
Dernière intervention
112
+ 10 !
Après plusieurs recherches, j'ai trouvé le problème. Puisque : magic_quotes_gpc = on ; ça équivaut à un addslashes(); pour get, post et cookies.
Bon d'accord ! Donc, j'ai juste à enlever mon addslashes(); mais par contre je laisse mon stripslashes(); ; c'est bien ça ?
Bon d'accord ! Donc, j'ai juste à enlever mon addslashes(); mais par contre je laisse mon stripslashes(); ; c'est bien ça ?
Je te conseil plutôt de désactiver l'option magic_quotes_gpc.
Il faut utiliser soit addslashes, soit mysql_real_escape_string, sinon tu auras deux backslashes qui se mettront avant les « " » et « ' » : il faudra appelé 2x « stripslashes() ».
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
Il faut utiliser soit addslashes, soit mysql_real_escape_string, sinon tu auras deux backslashes qui se mettront avant les « " » et « ' » : il faudra appelé 2x « stripslashes() ».
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
Je ne peux pas protéger ma variable comme ceci :
$variable = mysql_real_escape_string( htmlspecialchars( addslashes($_POST['variable']) ) ); ?
Soit je mets string, soit je mets addslashes ? ( C'est ça que tu veux dire ? )
Bon je vais voir comment désactiver magic_quotes.
Merci F16.
$variable = mysql_real_escape_string( htmlspecialchars( addslashes($_POST['variable']) ) ); ?
Soit je mets string, soit je mets addslashes ? ( C'est ça que tu veux dire ? )
Bon je vais voir comment désactiver magic_quotes.
Merci F16.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Okay d'accord. !
Par contre, tu peux me dire pourquoi il ne faut pas mettre les deux sur la même chaîne ?
Merci F16. ;)
Par contre, tu peux me dire pourquoi il ne faut pas mettre les deux sur la même chaîne ?
Merci F16. ;)
Parce que addslashes va remplacer ' par \'.
Après, mysql_real_escape_string va encore trouvé ' donc il va le remplacer par \'
Au final, on se retrouve avec \\'
Après un coup de stripslashes, ça ne retire qu'un \ : on obtient \'
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
Après, mysql_real_escape_string va encore trouvé ' donc il va le remplacer par \'
Au final, on se retrouve avec \\'
Après un coup de stripslashes, ça ne retire qu'un \ : on obtient \'
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.