Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-mysql:注册返回false_Php_Mysql_Forms_Registration - Fatal编程技术网

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,真不敢相信我犯了那个错误…谢谢你提醒我这是一个数据库错误。