2010-05-13 3 views
1

im travaillant en PHP depuis un an, mais maintenant quelques jours j'ai obtenu cette façon d'attribuer une valeur de données post directement en utilisant l'attribut name . Je suis vraiment curieux de connaître la documentation à ce sujet. S'il vous plaît référez-moi lien à ce sujet.est-il le bon sens (sécurité) pour attribuer une valeur de données de poste directement par son nom valeur attibute à une variable en php

i expliquer par exemple

ici est ma forme

<form method="post" action=""> 
<input type="text" name="userName" id="userName"> 
<input type="submit" name="doit" value="submit"> 
</form> 

pour obtenir les données post-je toujours utiliser

$somevar=mysql_real_escape_string($_POST['userName']); 

mais maintenant je vois une autre façon

$somevar= "userName"; 

je veux juste savoir tha t est-il sûr n moyen facile ??

Répondre

1

Je pense que vous êtes à la recherche de la directive du PHP register_globals. Jetez un oeil à Variables From External Sources. Toutefois, cette directive est à « off » et vous devriez probablement laisser cette façon car il est obsolète en PHP 5.3. Vous auriez encore mysql_real_escape_string() de toute façon.

Vous pouvez également utiliser import_request_variables() pour enregistrer les GLOBALS manuellement:

import_request_variables("p"); 
echo $userName; 

Using Register Globals sur le site Web de PHP vous donne une bonne idée de la façon dont il peut être dangereux pour enregistrer automatiquement les variables HTTP comme globals.

1

Personnellement, j'aime utiliser une fonction d'échappement. Donc, je tiendrais avec mysql_real_escape_string()

Je ne l'ai jamais vu un code où une variable a été affectée d'une valeur cité. La façon dont je comprends bien, tout ce que vous feriez est de faire $somevar contient une chaîne userName

+0

Je suis entièrement d'accord avec u monsieur, mais je vu cette méthode, voilà pourquoi je tire cette question. même 'register_globals' est désactivé dans php – diEcho

0

vous pouvez mieux utiliser le ci-dessous un

$somevar= $userName; 
OR 
$somevar= $_POST[userName]; 
+2

Je ne demande pas lequel je dois utiliser? Je demande que c'est la bonne façon (2 et un) – diEcho

+0

Oui, bien sûr, vous pouvez ... –

+0

désolé! Je demande juste qu'il ait vu la méthode 1? Si oui, fournissez-moi toute documentation à ce sujet – diEcho

Questions connexes