2010-09-11 9 views
0

En travaillant sur mon premier site PHP (je suis principalement un programmeur ASP), et j'ai besoin de convertir une variable querystring en un nombre que je peux ensuite utiliser pour interroger une base de données. Quel est le meilleur moyen de convertir en un int utilisable (j'ai déjà essayé intval() mais je continue à obtenir 0 comme résultat) et aussi de le valider (AKA pas de guillemets simples, bla bla) en PHP?Convertir querystring en int en PHP

+0

je ne comprends pas – Svisstack

Répondre

1

PHP permet beaucoup plus de flexibilité avec les types que ASP, et convertira automatiquement entre différents types.

La meilleure façon d'assurer un certain nombre dans votre SQL est d'utiliser sprintf(), par exemple:

$sql = "SELECT name FROM users WHERE id = ".sprintf("%d", $_POST['userid']) ; 

Lors de l'insertion des chaînes fournies par GET ou POST dans votre SQL, vous devez utiliser mysql_real_escape_string() (en supposant que votre SQL est va MySQL) pour échapper à tout ce qui doit échapper, donc:

$sql = "SELECT id FROM users where name = ".sprintf("'%s'", mysql_real_escape_string($_GET['username'])) ; 
+0

Que fera sprintf() si une chaîne comme "bonjour" est présentée dans la chaîne de requête au lieu d'un nombre? – MarathonStudios

+0

@MarathonStudios: '0' –

+0

Excellent, merci! – MarathonStudios

0

Vous essayez probablement de lire les paramètres d'entrée pour un script PHP - Je vous recommande d'utiliser

$_POST $_GET 

tableaux, car ils détiennent toutes ces informations déjà analysées.

+0

je suis déjà en utilisant ces derniers, je dois juste confirmer que l'entrée est un numéro avant de l'ajouter à ma requête SQL. – MarathonStudios