【发布时间】:2015-03-04 10:01:03
【问题描述】:
我想检查我的数据库中是否已经存在用户名。如果是这样,我想重定向回我的注册页面。我的代码可以添加用户名,但不检查用户名是否存在。请帮忙!!!这是 register.php 页面的代码。 该代码完全跳过对“用户名”的检查,如果存在或不存在,则插入到数据库中。
<?php
error_reporting (E_ALL ^ E_NOTICE);
include ('dbconn.php');
session_start();
$GLOBALS[$error_message];
$GLOBALS[$username];
if(isset($_POST['submit']))
{
$error = array();
if(empty($_POST['username']))
{
$error[] = 'Please enter a username. ';
}
else
{
$username = mysqli_real_escape_string($connection, $_POST['username']);
}
if(empty($_POST['password']))
{
$error[] = 'Please enter a password. ';
}
else
{
$password = mysqli_real_escape_string($connection,$_POST['password']);
}
if(empty($_POST['cpassword']))
{
$error[] = 'Please confirm password. ';
}
else
{
$cpassword = mysqli_real_escape_string($connection,$_POST['cpassword']);
}
if($password == $cpassword)
{
$mainpassword= $password;
}
else
{
$error[] = 'Your passwords do not match. ';
}
if(empty($error))
{
$query = "SELECT * from User WHERE username=' ".$username." ' ";
$result = mysqli_query($connection, $query) or die
(mysqli_error($connection));
if(mysqli_num_rows($result)> 0)
{
$multi = "Sorry ! This Username is not available...Please choose another";
}
else{ $sql="INSERT INTO user(username,password)VALUES ('$username','$password')";
mysqli_query($connection, $sql) or die(mysqli_error($connection));
header('Location:/MySQLi/confirmation.php'); }
}
else
{
$error_message = '<span class="error">';
foreach($error as $key => $values) {
$error_message.="$values";
}
$error_message.="</span><br/><br/>";
}
}
?>
【问题讨论】:
-
也发布您的 HTML 表单。
-
不确定是否重要,但表名“用户”在您的 SELECT 语句中大写,而不是在 INSERT 语句中。
-
这应该做什么
$multi = "Sorry !...以及您如何退出它?好像大门被破坏了,敞开着。您只是为其分配一个变量,它会从那里继续前进,然后插入到数据库中。添加返回/退出/死亡。您还应该在每个标题后添加一个退出。 -
尝试回显“select * from User...”以检查是否有任何错误。在最后一种情况下,将其粘贴到 phpMyAdmin 中,看看它是否有帮助。
-
了解 PHP - AJAX,它将更优雅地解决您的问题。