Probleme caractere special dans la base

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 : Probleme caractere special dans la base

par Ryle » 05 oct. 2008, 17:51

La fonction get_magic_quotes_gpc() va uniquement te dire si le serveur php sur lequel se trouve ton site va protéger ou pas les chaines qu'il reçoit.

Le but est uniquement de te permettre de savoir s'il faudra que tu le fasses ou pas, pour éviter que ça ne soit fait en double (comme ici) ou que ce ne soit pas fait du tout. Ex :
if (!get_magic_quotes_gpc()) // si les magic quotes sont désactivées
	$maVariableProtegee = addslashes($_GET['maVariable']); // je protège ma variable moi même

par mrarobaz » 05 oct. 2008, 17:40

Ok Merci et désoler

Je vien juste de voir ta réponse .

J'ai pas trop comprit comment me servir de get_magic_quotes_gpc()

Dois-je l'utilisé à la place de addslashes() par exemple ?

Merci pour votre aide

Le mieux c'est que j'essai sans et aprés 1 par 1 pour voir le resulta

par Ryle » 05 oct. 2008, 16:28

Commençons déjà par éssayer de comprendre ce qui se passe, ensuite tu devrais trouver toi même quelle fonction utiliser à partir de leur description.

Si les magic quotes sont activées sur le serveur, alors php va automatiquement protéger toutes les valeurs transmises par GET et POST, en ajoutant un antislash devant les caractères à échapper (guillemets, apostrophes, antislash, etc.). Le but est de pouvoir balancer les valeurs directement dans une requête SQL sans s'embêter à les protéger.
Si elles ne sont pas activées, cette protection n'est pas faites automatiquement et c'est à toi de l'ajouter quand tu en as besoin avec un addslashes(), un mysql_real_escape_string() ou autre...

Si tes apostrophes apparaissent protégées dans ta base, c'est sans doute que toi et php les avez tous deux protégés (l'apostrophes " ' " protégée par php devient " \' ", puis protégée par toi devient " \\\' ", ce qui fait qu'en base et en modification tu vois apparaitre " \' ".)

Tu peux tester si les magic quotes sont activées en faisant appel à get_magic_quotes_gpc(). Tu sauras alors s'il faut ou pas protéger tes chaines :)

Probleme caractere special dans la base

par mrarobaz » 04 oct. 2008, 22:55

Bonsoir,

Je pense que cette question a était poser mille et une fois mais en cherchant je trouve pas vraiement ma réponse alors pour aller plus vite .

Voilà j'ai un champ text et quand je valide mon formulaire de modification avec ce champ je me retrouve avec des \ devant les accants des guillemet , et des <br/> à chaque saut de ligne, le probleme s'arrete pas là si je clique sur modifier et valide sans changer le text il m'ajoute encore les caractéree en plus etc...

je voudrai savoir ce qui est le mieux pour eviter ça:

addslashes /ou/ nl2br(addslashes

Merci