<?php
$errors=array();
session_start();
if(!isset($_POST['name']) || empty($_POST['name'])){
$errors[]="enter name";
}
elseif(!isset($_POST['email']) || empty($_POST['email'])){
$errors[]="enter mail id";
}
elseif(!isset($_POST['password']) || empty($_POST['password'])){
$errors[]="enter password";
}
else{
$name=$_POST['name'];
$email=$_POST['email'];
$password=$_POST['password'];
$con=mysql_connect('localhost','root','') or die("failed establishing connection");
$db=mysql_select_db("sam",$con) or die("failed establishing db connection");
$query="SELECT * FROM user_account";
$result=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($result) or die('errors');
if($row[1]==$name){
echo"username already exists";
}
elseif($row[3]==$email){
echo "Email already exists";
}
else
{
$sql=" INSERT INTO user_account ('username','password','email') VALUES('$name','$password','$email') " or die(mysql_error());
$result=mysql_query($sql) or die(mysql_error());
if($result)
{
echo "insertion done";
}
else
{
echo "insertion failed";
}
}
}
if(count($errors)>0){
foreach($errors as $err){
echo $err;
}
}
?>
我需要检查用户名和用户输入的用户名是否已存在于数据库中。为此,我添加了if循环来检查它,但是每次用户输入相同的用户名时都会显示错误消息,但是在用户更正错误后,错误消息仍然存在。硬件 我可以让它工作吗?
你查询是错误的,你只是选择存在的所有用户。您应该选择用户名和密码以及电子邮件等于输入的位置,并检查第 1 行或第 0 行。