Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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登录的帮助吗_Php - Fatal编程技术网

需要PHP登录的帮助吗

需要PHP登录的帮助吗,php,Php,我一直在尝试为我的项目创建一个登录名,但我不知道我做错了什么 这是我用来检查按钮是否按下的: if(isset($_POST['login'])){ //Get Vars $username = $_POST['username']; $password = md5($_POST['password']); if(login($username, $password)){ echo 'You have been logged in'; } else { echo 'Wrong usern

我一直在尝试为我的项目创建一个登录名,但我不知道我做错了什么

这是我用来检查按钮是否按下的:

if(isset($_POST['login'])){
//Get Vars
$username = $_POST['username'];
$password = md5($_POST['password']);
if(login($username, $password)){
  echo 'You have been logged in';
} else {
  echo 'Wrong username and password';
}
}
这是我的登录功能:

function login($username, $password){

$db = new Database();

$query=("SELECT * FROM user
        WHERE username = $username
        AND password = $password");

//Bind Values
$row = $db->select($query);
-----------------------------------------
$count = mysqli_num_rows($row);

//Check Rows
if($count == 1){
   setUserData($row);
  return true;
} else {
  return false;
}
-------------------------------------
I BELIEVE THIS IS THE PART OF THE ERROR
}
function setUserData($row){
$_SESSION['is_logged_in'] = true;
$_SESSION['user_id'] = $row['id'];
$_SESSION['username'] = $row['id'];
$_SESSION['name'] = $row['name'];
}
下面是我的setUserData函数:

function login($username, $password){

$db = new Database();

$query=("SELECT * FROM user
        WHERE username = $username
        AND password = $password");

//Bind Values
$row = $db->select($query);
-----------------------------------------
$count = mysqli_num_rows($row);

//Check Rows
if($count == 1){
   setUserData($row);
  return true;
} else {
  return false;
}
-------------------------------------
I BELIEVE THIS IS THE PART OF THE ERROR
}
function setUserData($row){
$_SESSION['is_logged_in'] = true;
$_SESSION['user_id'] = $row['id'];
$_SESSION['username'] = $row['id'];
$_SESSION['name'] = $row['name'];
}
我不知道是否需要为此启动会话,如果需要,我应该将代码放在哪里


另外,我如何在代码中初始化它来检查,比如说,如果$count有效,因为当我简单地键入echo$count时,它只会说未识别的变量:count

出于教育目的,我将列出一个引用来重写代码:

用以下命令清理$\u帖子 将pass存储为md5哈希这是一个安全漏洞 看到和 更喜欢使用直接mysql本机函数
出于教育目的,我将列出重写代码的引用:

用以下命令清理$\u帖子 将pass存储为md5哈希这是一个安全漏洞 看到和 更喜欢使用直接mysql本机函数
我想你的问题应该是:

$query=("SELECT * FROM user
    WHERE username = '$username'
    AND password = '$password'");

我想你的问题应该是:

$query=("SELECT * FROM user
    WHERE username = '$username'
    AND password = '$password'");

我发现了我的错误,是表单造成了问题,我忘了输入method=POST和action=login.php


我真傻。谢谢大家的帮助。

我发现了我的错误,是表单造成了问题,我忘了输入method=POST和action=login.php


我真傻。谢谢大家的帮助。

您真的不应该使用MD5密码哈希,而应该使用PHP来处理密码安全问题。如果您使用的PHP版本低于5.5,您可以使用密码\u散列。您有语法错误。您应该看看PHP数据对象PDO@showdev user是关键字而不是保留字。它旁边没有R;-与使用R等不同,您真的不应该使用MD5密码哈希,而应该使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,您可以使用密码\u散列。您有语法错误。您应该看看PHP数据对象PDO@showdev user是关键字而不是保留字。它旁边没有R;-不像使用R等。哦,我是如何连续3个小时撞到我的头的。顺便说一句,谢谢你的链接哈哈…一直在那里欢迎你!这里有一个更高级的脚本,还有一个内置于小型MVC中的登录/注册脚本。谢谢这也帮助了我!哦,我是怎么连续三个小时撞到我的头的。顺便说一句,谢谢你的链接哈哈…一直在那里欢迎你!这里有一个更高级的脚本,还有一个内置于小型MVC中的登录/注册脚本。谢谢这也帮助了我!