ISSET Php mysql


ISSET Php mysql

伙计们,为什么每当我在没有任何数据的情况下点击表单上的提交按钮时,它都会说echo‘要么你的用户名,要么你的电子邮件已经被占用了!’。为什么尽管表单中没有任何数据,它仍然会通过此过程?最好的解释是什么?

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个小时,我似乎无法继续前进:(

isset为空字符串呈现true。它检查变量的存在。这是一个详细的解释。

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

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;
    }
}

您也可以尝试!empty:

如果要同时检查usernameemail(如果是already exist),还需要在select查询中检查email

    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;
        }
    }