使用PHP设置网站的登录

使用PHP设置网站的登录,php,html,mysql,Php,Html,Mysql,我必须创建一个网站,其唯一目的是连接到MySQL数据库并在图形用户界面中显示其信息 到目前为止,一切进展顺利。然而,我的问题是设置某种登录系统来获取用户的$username和$password 虽然该网站是为局域网开发的,但出于安全原因,我不希望在HTML或PHP中输入用户名和密码 我该如何编写代码,要求用户在我的索引页面上输入密码和用户名,并将其用于我网站上的所有其他页面,最终在用户关闭我的网站时将其忘记?目前我只知道HTML、CSS和一些非常幼稚的PHP。据我所知,您可以使用会话的标准登录类

我必须创建一个网站,其唯一目的是连接到MySQL数据库并在图形用户界面中显示其信息

到目前为止,一切进展顺利。然而,我的问题是设置某种登录系统来获取用户的$username和$password

虽然该网站是为局域网开发的,但出于安全原因,我不希望在HTML或PHP中输入用户名和密码


我该如何编写代码,要求用户在我的索引页面上输入密码和用户名,并将其用于我网站上的所有其他页面,最终在用户关闭我的网站时将其忘记?目前我只知道HTML、CSS和一些非常幼稚的PHP。

据我所知,您可以使用会话的标准登录类型。有许多教程向您展示了如何实现这一点,并且有许多不同的方法来获得结果。这完全取决于您的技能、安全级别和数据库要求,仅举几例

您应该先看一看这样的教程,它利用了一个会话,这将为您提供忘记密码功能。除非用户使用浏览器保存密码

以防上面的教程不符合您的喜好,请在此再看几遍:

我个人最喜欢的

我希望您能找到一些帮助,如果您在实现其中一个示例时遇到任何问题,请在代码中发布一个问题,以帮助您解决问题。

简而言之: login.php

<?php
session_start();
function hhb_tohtml($str)
{
    return htmlentities($str, ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED, 'UTF-8', true);
}

$accounts=array(
//username =>password
'smith'=>'smell',
'admin'=>'password',
'guest'=>'guestpass'
);

if(array_key_exists('submit',$_POST)){
    if(!array_key_exists('username',$_POST)){
        $username='';
    } else 
    {
    $username=$_POST['username'];
    }
    if(!array_key_exists('password',$_POST)){
        $password='';
    }else {
        $password=$_POST['password'];
    }
    if(!array_key_exists($username,$accounts)){
        die('This username does not exist.');
    }
    if($accounts[$username]!==$password){
        die('wrong password!');
    }
    $_SESSION['logged_in']=true;
    $_SESSION['username']=$username;
    die('you have logged in as: '.hhb_tohtml($username));
}
?>
<!DOCTYPE html>
<html>
<head><title></title></head>
<body>
<form action="?" method="post">
  Username: <input type="text" name="username" /><br>
  Password: <input type="password" name="password" /><br>
  <input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

由于session_start,会话id将存储在cookie中,服务器将记住该会话id是否已登录。

Hy您将需要阅读一些教程。在youtube上也可以搜索到一些关于登录系统的简单教程。也可以搜索PHP会话,希望这对你有所帮助。你的问题太笼统了。你应该研究这个话题,并尝试自己解决这个问题;如果在这个过程中有一个你无法解决的具体问题,请回来展示,我们可以帮你解决。哈哈,对不起,我对这个很陌生。我会四处看看,看能不能给你们提个更具体的问题。谢谢你的帮助@Dave请不要建议包含过时和不推荐内容的教程。当会话数据存储在cookie中时,用户可以将logged_in更改为true,并在不使用密码的情况下登录。。不是安全的解决方案。cookie只是服务器的标识符。信息在服务器上,而不是在客户端@丹:你完全错了$_会话仅存储在服务器上。它通过一个看起来像PHPSESSID=485a67891ffd01d4836863015ee7fa38的cookie与用户关联您可能在99%的internet服务器上都是正确的,但并非所有会话处理程序的工作方式都相同。有些人将数据保存在Cookie中,而不仅仅是标识符。@hanshenrik请参见:
session_start();
if(!isset($_SESSION['logged_in'])){die('you need to login first!');}