【发布时间】:2018-01-22 04:20:51
【问题描述】:
我正在创建自己的个人网站来销售音乐并帮助当地艺术家推广他们的音乐。但是,我遇到了问题。
我创建了一个注册页面,新用户可以在其中注册到系统上。我首先尝试从数据库中搜索电子邮件是否存在,以便表格上没有重复的电子邮件。我为此创建了一个if 语句,因此当该语句为真时(意味着找到重复的电子邮件),它会打印出“电子邮件存在”,但是当它没有从数据库中找到任何信息时,屏幕保持空白,而 else声明的一部分应启动并打印“未找到电子邮件”。
谁能帮我看看我哪里出错了?这是我的代码:
if ($_POST['submit2']){
$fname = $_POST['Fname'];
$sname = $_POST['Sname'];
$email = $_POST['Emailaddress'];
$pass = $_POST['newpassword'];
$sql= "select * from cust_information where email = '$email'";
$results = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_array($results) or die(mysqli_error($conn));
if($row > 0){
echo "email exists";
}elseif ($row <0){
echo "email doesnt exist";
}else{
echo "nothing was done";
}
}
【问题讨论】:
-
使用prepared statements,确保所有字段都被实际传递,确保启用PHP的error reporting并使用mysqli_error。我建议您不要使用当前代码标准自己创建销售方面,因为它很可能存在风险。如果您还没有这样做,请hash您的密码。
-
两件事(顺便说一句,你很容易受到 SQL 注入的攻击 -> 使用准备好的语句):使用 SELECT COUNT(*),这样如果不存在邮件,你将得到 0,如果不存在,你将得到 >0。无论如何,您的代码将返回