Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-11-2008 13:52:00

bucheron
Membre
Date d'inscription: 30-05-2008
Messages: 138

[Résolu] Question de magic quote !!!

Hello à tous,

je me pose une simple question mais je ne sais pas quelle solution utiliser. D'ou ma demande.

La plupart des hébergeurs ont la directives magic quote activé (qui rajoute des backslashes devant ' ou ").
Sur un hébergement mutualisé, il est en général impossible de la désactivé.

Donc lors d'un post, les champs qui contiennent ces caractères spéciaux sont échappés. Donc la valeur en base contient les backslashes.

On arrive à ma question.
Est il mieux selon vous d'échapper les données en sorties donc lors de l'utilisation des valeurs avec stripslashes ou lors de l'ajout en base ?

Dans le 1er cas cela inclut qu'a chaque affichage d'élément texte il faudra appeler stripslashes (qui alourdit le code).
Dans le 2e cas, lors d'un insert (via une classe qui étend Zend_Db_Table_Abstract) il faudra enlever les backslashes (tj grace à stripslashes). Mais dans ce cas y aura t'il des soucis pour l'insertion ou Zend le gère lui même. (Pour info, j'ai fais un test et je n'ai pas l'impression que cela pose problème).

Donc selon vous qu'elle est la meilleure stratégie à adopter ?

D'avance merci

Dernière modification par bucheron (05-11-2008 16:28:41)

Hors ligne

 

#2 05-11-2008 14:43:57

JEDI_BC
Membre
Date d'inscription: 27-10-2008
Messages: 38

Re: [Résolu] Question de magic quote !!!

Déjà il faut TOUJOURS échapper avant un insert en BDD, ceci afin d'éviter une injection SQL.
Zend_DB te fournis plusieurs méthodes pour rle faire automatiquement et en toute transparence, que magic quote soit activé ou non donc pas trop de pb de ce coté là wink

Ensuite, si tes données sont correctement insérées en BDD, tu n'a plus besoin de faire des stripslashes en sortie d'écran.

Hors ligne

 

#3 05-11-2008 15:17:22

bucheron
Membre
Date d'inscription: 30-05-2008
Messages: 138

Re: [Résolu] Question de magic quote !!!

ok, donc la 2e solution est mieux (c'est ce que je pensais)

par contre tu parles de méthodes automatique, est ce que tu pourrais me les indiquer ?
merci

Hors ligne

 

#4 05-11-2008 15:29:31

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Question de magic quote !!!

Hello,

Chaque adaptateur de BDD fournit :

Code:

quote() => $name = $db->quote("O'Reilly");
quoteInto() => $db->quoteInto("SELECT * FROM bugs WHERE reported_by = ?", "O'Reilly");
quoteIdentifier() => sql = "SELECT * FROM " . $db->quoteIdentifier("order");

Si tu utilises Zend_Db_Table ou Zend_Db_Table_Row, ce que tu fournis est échappé. Ex :

Code:

$table = new Bugs();
$data = array('created_on' => '2007-03-22',
    'bug_description' => "qqch avec des 'quotes' ",
    'bug_status'      => 'NEW');
$table->insert($data);

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 05-11-2008 15:36:02

bucheron
Membre
Date d'inscription: 30-05-2008
Messages: 138

Re: [Résolu] Question de magic quote !!!

en effet j'utilise Zend_Db_Table.
En fait je récupère mes données post puis j'appel mon insert.
Dans ce que tu m'expliquais je pensais qu'il existait une méthode à appeler avant l'insert pour échapper les \ d'une chaine ?

PS: J'ai toujours la solution d'appeler la fct stripslashes pour chacune de mes variables Posts

Hors ligne

 

#6 05-11-2008 15:42:56

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Question de magic quote !!!

Hello,

Non effectivement, tu dois enlever ce qui aura été mis par magic_quote.

A+

Dernière modification par mikaelkael (05-11-2008 15:44:56)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#7 05-11-2008 16:28:27

bucheron
Membre
Date d'inscription: 30-05-2008
Messages: 138

Re: [Résolu] Question de magic quote !!!

ok impec merci beaucoup smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages