PHP-mysql:注册返回false
我正试图从两个文本框中输入数据库中的值,但当我提交用户名和密码时,我收到了以下错误:尚未在数据库中输入用户,请与系统管理员进行检查PHP-mysql:注册返回false,php,mysql,forms,registration,Php,Mysql,Forms,Registration,我正试图从两个文本框中输入数据库中的值,但当我提交用户名和密码时,我收到了以下错误:尚未在数据库中输入用户,请与系统管理员进行检查 <?php session_start(); $logged_in = isset($_SESSION['USERNAME']) && $_SESSION['USERNAME'] ? $_SESSION['USERNAME'] : null; if(!$logged_in) { } error_repor
<?php
session_start();
$logged_in = isset($_SESSION['USERNAME']) && $_SESSION['USERNAME'] ?
$_SESSION['USERNAME'] : null;
if(!$logged_in) {
}
error_reporting(E_ALL & ~E_NOTICE);
include 'dbconfig.php';
global $db;
$username=$_POST['username'];
$password=$_POST['password'];
// encrypting password
$encrypted_password=md5($password);
$stmt = $db->prepare("SELECT * FROM user_info WHERE username = ?");
$stmt->execute(array($username));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if (! $row){
//add new user to database
$stmt = $db->prepare("INSERT INTO user_info(username, password) VALUES (?,?)");
$params1 = array($username, $encrypted_password);
if (!$stmt ->execute($params1)){
echo "user has not been entered on the database check with administrator of the system.
<span class='label label-important'>Important</span>";
}else{
echo $username." has been added to the database as a supervisor. <span class='label
label-success'>Success</span>";
}
else{
echo $username." is already a user of the system <span class='label label-
warning'>Warning</span>";
}
$db = null;
?>
从您的代码中无法完全理解错误在哪里
但是,
当你遇到错误时
if (!$stmt ->execute($params1)){
语句,我假设这是一个与数据库相关的错误
因此,首先检查表中用户名字段的大小。对字段进行maxlength检入用户输入
另外,要注意的是,md5密码加密会返回近30个字符。因此,将密码字段设置为50个字符是安全的
此外,可能还有其他导致错误的原因,但请先确认上述原因,然后重试
谢谢表中用户名和密码字段的大小是多少?在用户输入时,您是否正确检查了用户名/密码长度的大小与表字段长度?我没有执行任何检查,我不知道我必须这样做?您在之后有一个空格$stmt
如果(!$stmt->execute($params1))
这只是一个输入错误吗?不,这是在我的代码中,我已经修改了它,但它不会改变结果。这是最简单的错误,在INSERT INTO语句中用户名应该是用户id,真不敢相信我犯了那个错误…谢谢你提醒我这是一个数据库错误。