heu... regle n°4 de ma signature peut etre ;o)
postgreSQL a également des fonctions qui vont bien, quand a MSSQL, y a pas de fonctions prédéfinies, mais on en trouve dans les commentaires utilisateurs du manuel.
Version imprimable
heu... regle n°4 de ma signature peut etre ;o)
postgreSQL a également des fonctions qui vont bien, quand a MSSQL, y a pas de fonctions prédéfinies, mais on en trouve dans les commentaires utilisateurs du manuel.
Oui, c'est le "htmlentities" qui manque.
Il est à mettre sur tous les value des champ input en "text" ?
Pour Mssql il y a rien mise à par remplacer les simple quote en double. Une faille que j'ai constaté c'est le double tiret qui lui est sensibleCitation:
Envoyé par Fladnag
SELECT * from xxx WHERE yyy='ffdfd--' = plantage c'est un exemple le problème c'est que j'en suis sur qu'il y a en a d'autre.
"mysql_real_escape_string" si j'ai bien compris permet de garder intact le contenu du champ et donc mysql ne l'interprête pas.
Si c'est le cas es-ce que cela remplace une fonction de ce gence (en partie bien sûr) :
Code:
1
2
3
4
5
6
7
8
9
10
11
12 function endCodeField($field) { $field = trim($field); $field = strip_tags($field); // convertit le premier caractère d'une chaîne en majuscule $field = ucfirst($field); $field = str_replace('"','"',$field); $field = stripslashes($field); $field = addslashes($field); $field = utf8_decode($field); return $field; }
Non il y a des choses qui sont en double ou ne serve a rien.Citation:
Envoyé par lodan
$field = str_replace('"','"',$field);
avec ça
$field = addslashes($field);
A premiere vu.
une simple quote doit être remplacé par une double quote.
ca m'etonne ce que tu dis parce que ca voudrais dire que mssql ne peux JAMAIS avoir -- dans un champ de type VARCHAR (ou equivalent krosoft) ce qui me parait tres douteux...Citation:
Envoyé par berceker united
par contre, je veux bien que
plante, mais ce n'est pas pareil parce qu'il n'y a pas d'apostrophe autour de la valeur... et ce type de syntaxe doit etre reservé aux champs (et aux valeurs) qui sont purement numerique (a filtrer avant donc)Code:
1
2 $valeur = "valeur--"; $sql="SELECT * FROM table WHERE champ=$valeur";
Je t'assure sur les croquettes de mon chat, j'ai fais un test, j'ai remarqué le même problème en version asp.Citation:
Envoyé par Fladnag
Version php
C'est un petit moteur de recherche bateau (pour une utilisation personnel). Lorsque dans le champs de formulaire je tape simplement :Code:
1
2
3
4
5
6
7
8
9
10
11 Function SearchFichier($Mot){ $i = 0; $data = array(); $rs = mssql_query("SELECT b.nom,b.idfichier,a.code,a.idline_code,a.line FROM tb_line_code AS a , tb_fichier_code AS b WHERE a.code LIKE '%".$Mot."%' AND b.idfichier=a.idfichier ORDER BY b.nom, a.line"); while($data = mssql_fetch_array($rs)){ $arrOut[$i] = $data; $i++; } return $arrOut; }
word --
Requête refusé.
Non ce sont deux cas différents... dans le premier id est une chaine de charactère car il est entre quotes dans ce cas tu faisCitation:
Envoyé par JackBeauregard
Dans le second cas id est un int donc...Code:WHERE id='".mysql_real_escape_string($id)."'
ouCode:WHERE id='.(int)$id.'
@ tchaOo°Code:WHERE id='.intval($id).'
Ben je te crois alors... j'ai pas de serveur krosoft a attaquer pour verifier... mais si c'est le cas c'est VRAIMENT la base la plus pourrie de la terre... mais c'est pas possible, ca doit etre une option a activer quelque part ;o)Citation:
Envoyé par berceker united
Oui peut être mais elle aurait dù être activé par défaut. pour info c'est SQLServer 2000 peut être que sur la version 2005 c'est arrangé.Citation:
Envoyé par Fladnag