sql injection yememem için
23
●2.994
- 22-06-2007, 10:24:33
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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; }kullanım:
$ad = GetSQLValueString($_GET['ad'], "text");
$id = GetSQLValueString($_GET['id'], "int");
bütün zararlı karakterleri imha ediyoruz ve değerin başına ve sonuna ' ekliyoruz.
$kayit = "INSERT INTO ben (ad,aciklama) values($ad, $aciklama)";
değerler ' ' arasına alınmadan kullanılmalı. sprintf kullanılması daha sağlıklı bir kodlama olur. - 22-06-2007, 12:32:31Üyeliği durdurulduNereden uydurdun ki bunu?
Tam tersine asıl PHP'nin utf8 desteği tam değil şuan.
OnurSQL adlı üyeden alıntı: mesajı görüntüle