rare tekens aan einde query
Dag,
Raar probleem, de volgende waarde inject ik in mijn database:
GetSQLValueString($_POST['Garantie'], "text"),
(dit is een klein gedeelte), hier volgt de functie getsqlvaluestring():
Dit werkt allemaal prachtig, en als ik het vervolgens select en print is het allemaal goed, maar als ik kijk en de query browser blijkt dat er achter elk ingevoerd veld een enter en een paar spaties staan. Hoe kan ik dat voorkomen?
Raar probleem, de volgende waarde inject ik in mijn database:
GetSQLValueString($_POST['Garantie'], "text"),
(dit is een klein gedeelte), hier volgt de functie getsqlvaluestring():
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
Dit werkt allemaal prachtig, en als ik het vervolgens select en print is het allemaal goed, maar als ik kijk en de query browser blijkt dat er achter elk ingevoerd veld een enter en een paar spaties staan. Hoe kan ik dat voorkomen?
Gesponsorde koppelingen:
Dat ligt niet aan de functie.
Je zou er in de functie misschien eerst even een trim() over kunnen halen.
Je zou er in de functie misschien eerst even een trim() over kunnen halen.
SanThe, had ik al geprobeerd, had ik even moeten melden. Ik heb de volgende functies er al overheen laten gaan:
trim()
mysql_real_escape_string()
htmlentities()
htmlspecialchars()
str_replace() // spaties weghalen, resulteert in hetzelfde
trim()
mysql_real_escape_string()
htmlentities()
htmlspecialchars()
str_replace() // spaties weghalen, resulteert in hetzelfde
Dan moet je gaan zoeken wanneer die er bij komen. Dus overal een echo zetten, vóór, in en ná de function.



