par
Sékiltoyai » 05 oct. 2007, 10:42
Trois choses :
-Un slash n'a rien à faire dans un numéro de téléphone, tu n'es pas sensé faire la requète avec. Lorsque tu fais un “cast” (c'est pas un vrai cast mais bon…) chaine vers entier, alors il retire tout 0 en début de chaine, et arrête la lecture au premier caractère non numérique, intval() se comporte exactement pareil…
-Les requètes préparées ne te dispensent pas des contrôles sur les données, non pour s'assurer de la sécurité de la base, mais pour t'assurer de l'intégrité des données, parce que sans contrôle, on peut te mettre le numéro 8756 en base sans que le script bronche. C'est à toi, lorsque le numéro n'est pas correct, de demander à l'utilisateur de le retaper ou de l'effacer…
-Enfin un numéro de téléphone ne contient que des chiffres mais ce n'est pas un entier, ce n'est pas une information numérique, c'est une information textuelle, tu dois le stocker sous forme d'une chaine. D'ailleurs, tel que tu le stockes, le “0632…” se transforme en “632…”, et pire, le “06 32…” se transforme en “6”, et enfin le “+33 6 32…” te donne “”.
Trois choses :
-Un slash n'a rien à faire dans un numéro de téléphone, tu n'es pas sensé faire la requète avec. Lorsque tu fais un “cast” (c'est pas un vrai cast mais bon…) chaine vers entier, alors il retire tout 0 en début de chaine, et arrête la lecture au premier caractère non numérique, intval() se comporte exactement pareil…
-Les requètes préparées ne te dispensent pas des contrôles sur les données, non pour s'assurer de la sécurité de la base, mais pour t'assurer de l'intégrité des données, parce que sans contrôle, on peut te mettre le numéro 8756 en base sans que le script bronche. C'est à toi, lorsque le numéro n'est pas correct, de demander à l'utilisateur de le retaper ou de l'effacer…
-Enfin un numéro de téléphone ne contient que des chiffres mais ce n'est pas un entier, ce n'est pas une information numérique, c'est une information textuelle, tu dois le stocker sous forme d'une chaine. D'ailleurs, tel que tu le stockes, le “0632…” se transforme en “632…”, et pire, le “06 32…” se transforme en “6”, et enfin le “+33 6 32…” te donne “”.