为什么下面这段代码我无论输出什么都会显示登录密码错误呢??用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"您的用户名格式错误"
}
?>

解决方案 »

  1.   

    从html那边提交过来的数据一般都是string的.
    if(is_int($num2))
    {
    echo"欢迎您的登录"
    }
    else
    {
    echo"登录密码错误"
    }
    $num2是stirng类型,所以显示"登录密码错误"
      

  2.   

    $num2不是数值型的,一般接过来是字符串,你var_dump($num2)看看,应该是string
      

  3.   

    是的,form 提交过去的都是字符串。你应该用  is_numeric() 来检测更为恰当。
      

  4.   

       谢谢楼上的回答,我主要是想在PHP中验证HTML表单中用户输入的信息类型是否符合规则,就是用户名是
    字符型,密码是整数型,老是搞不定,脑袋晕了
      

  5.   

    @jordan102最后问您一个问题,在PHP中怎样验证$num1是纯字符串,而非数字型字符串呢
      

  6.   

    if(!preg_match('/^\d+$/',$num1)
               echo '纯字符串';
      

  7.   

    少了一个括号
    if(!preg_match('/^\d+$/',$num1))
      echo '纯字符串';