if(get_magic_quotes_gpc())
{
$location_name = trim(mysql_real_escape_string(trim(stripslashes($_GET['location_name']))));
}
else
{
$location_name = trim(mysql_real_escape_string(trim($_GET['location_name'])));
}
C'est le code que j'ai jusqu'à maintenant. Il me semble que ce code est fondamentalement ... OK. Pensez-vous que je peux retirer en toute sécurité l'intérieur trim()
. S'il vous plaît essayez pas un spam moi avec une version sans fin de cela, je veux essayer de apprendre comment faire mieux.Quelle serait une meilleure façon de faire ce qui suit
MISE À JOUR
après avoir lu quelques-unes des réponses, je pense que je suis venu à comprendre une bonne méthode pour obtenir des données en toute sécurité d'un utilisateur, le stockage, puis l'afficher en arrière.
Lorsque vous chargez la page
$foo = trim($_GET['foo']);
if(get_magic_quotes_gpc())
{
$foo = stripslashes($foo);
}
Puis, quand vous venez d'utiliser cette variable dans le cadre d'une chaîne SQL, même si ne pas stocker les données dans la base de données, vous devriez y échapper.
mysql_real_escape_string($foo);
Et enfin, si la lecture des données de la base de données et de vouloir l'afficher comme HTML, un post sur un blog ou un forum, vous devez passer la variable en utilisant htmlspecialchars
echo(htmlspecialchars($bar));
Est-ce que l'une souhaitez suggérer un meilleur ensemble de fonctions à utiliser? d'autres enveloppant alors évidemment ces fonctions pour les rendre plus simples à appeler.
Je pense que vous pouvez supprimer en toute sécurité le ** outer ** 'trim()'. Je ne pense pas que mysql_real_escape_string ajoutera des espaces inutiles. –
Une légère correction. pas "quand vous venez d'utiliser * cette * variable dans le cadre d'une chaîne SQL", mais n'importe quelle variable. ** et ** seulement si vous allez le placer entre guillemets. Mais bien sûr, toutes ces règles deviennent obsolètes une fois que vous vous êtes tourné vers des déclarations préparées, comme Manos l'a mentionné. Le reste est parfait. –