if(!ereg("^[a-zA-Z0-9]{2,10}$",$nicker))
{
$reason = "昵称没有没按要求填写,请检查";
$check = 0;
die($reason);
}$sql = "select nicker from user_info where nicker='$nicker'";
$result = mysql_query($sql) or die(mysql_error());
$num = mysql_num_rows($result);if ($num != 0)
{
$reason = "该用户已存在,如果您忘了密码,可以选择<a href=\"sendpwd.php\">密码发送</a>";
$check = 0;
die($reason);
}

解决方案 »

  1.   

    你的两个条件并不是互斥的,所以会出现你的错误结果。
    if(condition1)
    {
      echo(result1);
      exit;
    }
    if(condition2)
    {
      echo(result2);
      exit;
    }
    或者,变通一下两个错误都输出 :)
      

  2.   

    怎么解决他们说了 我来说为什么:
    if(!ereg("[a-zA-Z0-9]{2,10}$",$nicker))
    {
    $reason = "昵称没有没按要求填写,请检查";
    //第一次付值,
    $check = 0;
    }$nicker = htmlspecialchars(str_replace("'","\'",stripslashes($nicker)));
    $sql = "select nicker from user_info where nicker='$nicker'";
    $result = mysql_query($sql) or die(mysql_error());
    $num = mysql_num_rows($result);if ($num != 0)
    {
    $reason = "该用户已存在,如果您忘了密码,可以选择<a href=\"sendpwd.php\">密码发送</a>";
    //第二次付值 
    $check = 0;
    }
    所以$reason肯定是输出用户已经存在等信息,因为不管前面条件符合与否
    反正第二个条件是符合了!
    第1个if不成立应该输出错误原因“昵称没有没按要求填写,请检查”
    但却显示第2个if语句的错误原因“该用户已存在,如果您忘了密码,可以选择<a href=\"sendpwd.php\">密码发送</a>";”,这是为什么?怎么几决?
      

  3.   

    这样试试,应该能解决问题!
    if(!ereg("[a-zA-Z0-9]{2,10}$",$nicker))
     {
        $reason = "昵称没有没按要求填写,请检查";
        $check = 0;
     }
     else
     {
        $nicker = safe_convert($nicker);
        $sql = "select nicker from user_info where nicker='$nicker'";
        $result = mysql_query($sql) or die(mysql_error());
        $num = mysql_num_rows($result);
        if ($num != 0)
        {
          $reason = "该用户已存在,如果您忘了密码,可以选择<a href=\"sendpwd.php\">密码发送</a>";
          $check = 0;
        } }