伙计们,为什么每当我在没有任何数据的情况下点击表单上的提交按钮时,它都会说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
:
如果要同时检查username
或email
(如果是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;
}
}