[RESOLU] Textarea & Apostrophe

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 : [RESOLU] Textarea & Apostrophe

Re: Textarea & Apostrophe

par ynx » 08 juin 2015, 15:17

Erreur de syntaxe sql : il s'agit bien d'une erreur liée aux caractères spéciaux de ta bdd.

@LittleFairy : l'utilisation de addslashes() n'est plus recommandée pour l'échappement des caractères spéciaux sql, mieux vaut utiliser les fonctions et/ou méthodes dédiées pour ça ;) (cf. précédent post)

Re: Textarea & Apostrophe

par LittleFairy » 08 juin 2015, 14:44

bonjour dilidim,
tes apostrophes sont interprêtées comme du code, il faut encoder ton texte avant de le mettre dans la base :
ajoute addslashes ($texte); au lieu de $texte
pour afficher ensuite le résultat, tu feras stripslashes($ta_requete['texte'];

Mais pour éviter les erreurs, vérifie bien que :
base de donnée en UTF-8
page en UTF-8
incrémentation simple (sans addslashes ou htmlentities),
affichage avec nl2br juste pour les retour chariots. nl2br($texte);

Enjoy !

Re: Textarea & Apostrophe

par Dilidim » 08 juin 2015, 14:38

Il m'affiche ça :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1'' at line 16

Je vais regarder les liens que t'as renseigné !

Re: Textarea & Apostrophe

par ynx » 08 juin 2015, 14:02

Salut,

Peux tu préciser le message d'erreur ?

Si il s'agit d'un problème d'enregistrement en base de données, tu dois échapper les caractères spéciaux de ta bdd dans tes données avant de les utiliser dans une requête sql. Plusieurs possibilités pour faire cela :
- si tu utilises PDO, tu dois utiliser des requêtes préparées ou la méthode PDO::query()
https://php.net/manual/fr/pdo.prepare.php
https://php.net/manual/fr/pdo.quote.php
- si tu utilises l'API Mysqli, tu dois utiliser mysqli_real_escape_string()
https://php.net/manual/fr/mysqli.real-escape-string.php
- si tu utilises l'API Mysql (obsolète) tu dois utiliser mysql_real_escape_string()
http://php.net/manual/fr/function.mysql ... string.php

Bonne journée

Textarea & Apostrophe

par Dilidim » 08 juin 2015, 10:03

Bonjour,

Je possède un formulaire dans lequel se trouve un textarea, lorsqu'on remplit ce champ avec une apostrophe j’obtiens une erreur...
Comment puis je résoudre ce souci ?

Merci d'avance !