0

伙计们,每当我单击表单上的提交按钮时,文本框中没有任何数据,它会显示“您的用户名或电子邮件已被占用!”;. 尽管表单没有任何数据,为什么它仍然通过这个?最好的解释是什么?

if(isset($_POST['username']) && isset($_POST['email']))
{
    $username = $_POST['username'];
    $email = $_POST['email'];

    $extract= mysql_query("SELECT * FROM users where username='$username'");

    $resultq = mysql_num_rows($extract);
    if($resultq > 0)
    {
       echo 'Either your username, or email is already taken!';
       return;
    }

}

请他在这条线上坚持了 12 个小时,我似乎无法继续前进:(

4

3 回答 3

2

isset为空字符串呈现真。它检查变量的存在。这里有详细的解释

你应该使用if (trim($_POST['username']) != "")

于 2013-08-24T04:02:09.247 回答
0
if(isset($_POST['submit']))
{
    $username = $_POST['username'];
    $email = $_POST['email'];

    $extract= mysql_query("SELECT * FROM users where username='$username'");

    $resultq = mysql_num_rows($extract);
    if($resultq > 0)
    {
       echo 'Either your username, or email is already taken!';
       return;
    }

}
于 2013-08-24T04:16:18.140 回答
0

您也可以尝试!empty

如果你想同时检查username或者email如果already exist你还需要检查email查询select

    if(!empty($_POST['username']) && !empty($_POST['email']))
    {
        $username = $_POST['username'];
        $email = $_POST['email'];

        $extract= mysql_query("SELECT * FROM users where username='$username' OR email='$email'");

        $resultq = mysql_num_rows($extract);
        if($resultq > 0)
        {
           echo 'Either your username, or email is already taken!';
           return false;
        }
        else
        {
            echo 'Accept';
            return true;
        }
    }
于 2013-08-24T04:17:00.360 回答