0
これは正しい方法ですか?私は4つの入力領域を持っています。これらの入力領域はすべて、DB検索のフィルタリングを中心にしており、これを正しく行う方法について少し混乱しています。私が持っているもの:検索文字列のデータベース
$e_s=mysql_real_escape_string($_POST['var_specs']);
$ven=mysql_real_escape_string($_POST['vender']);
$xtp=mysql_real_escape_string($_POST['xtype']);
$sar=mysql_real_escape_string($_POST['sarea']);
if(strlen($e_s) > 1){
if ($e_s && $Area=="vars"){
$AreaSearch = "db_vars";
$TypeResults = "vars";
$TypeUrl = "vars";
$search = $e_s;
}
// IF VENDER
if($ven=="ALL" || $ven==""){
$vender_search="%";
}
else {
$vender_search="%".$ven."%";
}
// IF TYPE
if($xtp=="ALL"){
$xtype_search="%";
}
else {
$xtype_search="%".$xtp."%";
}
// IF AREA
if($sar=="ALL"){
$sarea_search="%";
}
else {
$sarea_search="%".$sar."%";
}
// RUN QUERY
$result = mysql_query("SELECT * FROM ".$AreaSearch." WHERE name LIKE '%".$search."%' AND vender LIKE ".$vender_search." AND xtype LIKE ".$xtype_search." AND sarea LIKE ".$sarea_search);
}
注:これは非常に簡単なDOS攻撃からあなたを保護するものではありません。最小文字長を確認し、このクエリの結果をキャッシュする必要があります。 –