PDA

View Full Version : مشکل با ثابت های فیلتر



morrning
دوشنبه 31 تیر 1392, 13:54 عصر
سلام من یک فانکشن به صورت زیر نوشتم

function cin($VaribleName,$Type="get",$Filter='FILTER_SANITIZE_SPECIAL_CHARS',$Flags=""){
if($VaribleName=="" || $Filter=""){ return 0; }
switch ($Type){
case "get";
if ($Flags==""){

$Result=filter_input(INPUT_GET,$VaribleName,$Filte r);}
else { $Result=filter_input(INPUT_GET,$VaribleName,$Filte r); }


break;
case "post";
if ($Flags!==""){ $Result=filter_input(INPUT_POST,$VaribleName,$Filt er); }
else { $Result=filter_input(INPUT_POST,$VaribleName,$Filt er,$Flags); }
break;
case "cookie";
if ($Flags!==""){ $Result=filter_input(INPUT_COOKIE,$VaribleName,$Fi lter); }
else { $Result=filter_input(INPUT_COOKIE,$VaribleName,$Fi lter,$Flags); }
break;
case "server";
if ($Flags!==""){ $Result=filter_input(INPUT_SERVER,$VaribleName,$Fi lter); }
else { $Result=filter_input(INPUT_SERVER,$VaribleName,$Fi lter,$Flags); }
break;
default;
#is invalid type
return 0;
break;
}
$this->FilterType=$Filter;
return $Result;
}

خطای ایجاد شده به شکل زیر هست.

Warning: filter_input() expects parameter 3 to be long, string given in C:\wamp\www\core\classes\io.php on line 16

مشکلش اینه که مثلا اگه تابع filter_input رو به صورت زیر ران بشه مشکلی پیش نماد


$Result=filter_input(INPUT_POST,$VaribleName,FILTE R_SANITIZE_SPECIAL_CHARS);

مشکل اینه که من میخوان ثابتی که فیلتر بر اساس اون صورت میگیره رو از ورودی تابع بگیرم که ارور میده. راه حلی هست؟

shahriyar3
دوشنبه 31 تیر 1392, 17:25 عصر
توی راهنمای توابع زده که ثابت های فیلتر های ورودی از نوع int هست ولی شما داری از نوع string ازش استفاده میکنی.خوب باید error بده دیگه.
بجاش فکر کنم بتونی از filter_var یا filter_var_array استفاده کنی به این مشکل نخوری