日期:2014-05-17  浏览次数:20396 次

新手有一个问题很纠结,请教各位
为什么下面这段代码我无论输出什么都会显示登录密码错误呢??用var_dump($num1)发现无论html那边num1输入什么,$num1和$num2都是string类型
<?php
$num1=$_REQUEST['num1'];
$num2=$_REQUEST['num2'];
if(is_string($num1))
{
if(is_int($num2))
{
echo"欢迎您的登录"
}
else
{
echo"登录密码错误"
}
}
else
{
echo"您的用户名格式错误"
}
?>

------解决方案--------------------
从html那边提交过来的数据一般都是string的.
if(is_int($num2))
{
echo"欢迎您的登录"
}
else
{
echo"登录密码错误"
}
$num2是stirng类型,所以显示"登录密码错误"
------解决方案--------------------
是的,form 提交过去的都是字符串。你应该用 is_numeric() 来检测更为恰当。
------解决方案--------------------
都有,前台可进行一般验证。但是为了安全性在后台验证也有必要性。
------解决方案--------------------
if(!preg_match('/^\d+$/',$num1)
echo '纯字符串';