php - 错误消息不适用于 PHP 用户检查

标签 php mysql

我是 PHP 新手,已经编写了一个 PHP 注册页面,它工作正常,可以为新用户添加到数据库。但是当添加重复的用户名时,不会出现错误消息。我是否遗漏了任何代码或者我需要更改代码吗?

我的代码:

<?php

define('DB_HOST', 'localhost');
define('DB_NAME', 'login');
define('DB_USER','root');
define('DB_PASSWORD','');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());


function NewUser()
{
$username = $_POST['username'];
$password =  $_POST['password']; 
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$query = "INSERT INTO users (username, password, firstname, surname) VALUES ('$username', '$password', '$firstname', '$surname')";


$data = mysql_query ($query)or die(mysql_error());
if($data)
{
echo "YOUR REGISTRATION IS COMPLETED, YOU CAN SIGN IN NOW";
}
}

function SignUp()
{
if(!empty($_POST['username']))
{
$query = mysql_query("SELECT * FROM users WHERE username = '$_POST[username]' AND password = '$_POST[password]'") or die(mysql_error());

if(!$row = mysql_fetch_array($query) or die(mysql_error()))
{
    newuser();
}
else
{
    echo "SORRY, YOU ARE ALREADY REGISTERED USER.";
}
}
}
if(isset($_POST['submit']))
{
SignUp();
}
?>

最佳答案

由于您是新手,您不妨放弃 MySQL_ 语句并使用更安全的内容,例如 MySQLi_ 或 PDO。这不会禁止您使用数据库,它们只是更安全。

另外:$row 未定义。

再一次,因为您是新手,我建议您使用一个可以对代码进行缩进的编辑器。缩进使您的代码更具可读性,并在您遇到此类问题时帮助其他人帮助您。

关于php - 错误消息不适用于 PHP 用户检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24169916/

相关文章:

php - 从 SQL BLOB 输出图像

php - 如何在提交表单后保留先前上传的图像而不选择要在codeigniter中上传的新图像

php - HTML 的 URLEncode::Laravel 中的链接

php - drupal 7 显示/隐藏角色字段

php - 在php中登录后重定向页面

java - 什么是更快的 : JDBC or JNDI?

mysql - 如何使用sequelize连接上传数据的两个表?

php - Laravel @foreach - 提供的参数无效

php - 如何使用 SimpleXml 获取元素的 innerText

php - php中可以通过SID加载 session 吗?