使用PHP为网站设置登录 [英] Setting up a log-in for a website using PHP
问题描述
我必须创建一个网站,其唯一目的是连接到MySQL数据库并在图形用户界面中显示其信息。
到目前为止,所有的工作都很顺利。然而,我的问题是设置某种登录系统来获取用户的 $ username
和 $ password
。
虽然网站正在为局域网使用而开发,但我宁愿不要把用户名
和密码
出于安全原因在HTML或PHP中。
如何编写代码以询问用户密码
和用户名
在我的索引页上,它用于我网站上的所有其他页面,并最终在用户忘记时关闭我的网站?目前我只知道HTML,CSS和一些非常幼稚的PHP。
登录.php
<?php
session_start();
函数hhb_tohtml($ str)
{
返回htmlentities($ str,ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED,'UTF-8',true);
$ accounts = array(
// username =>密码
'smith'=>'smell',
'admin' =>'密码',
'guest'=>'guestpass'
);
$ b $ 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('你已经登录为:'.hhb_tohtml($ username));
}
?>
<!DOCTYPE html>
< html>
< head>< title>< / title>< / head>
< body>
用户名:< input type =textname =username/>< br>
密码:< input type =passwordname =password/>< br>
< input type =submitname =submitvalue =Submit/>
< / form>
< / body>
< / html>
以及其他地方,比如controlpanel.php:
session_start();
if(!isset($ _ SESSION ['logged_in'])){die('您需要先登录!');}
会话ID将存储在cookie中,这要感谢session_start(),并且服务器将记住此会话ID是否已登录。
I have to create a website with the sole purpose of connecting to a MySQL database and displaying its information in a graphical user interface.
So far everything is working well. My problem, however, is setting up some sort of log in system to get the user's $username
and $password
.
While the website is being developed for LAN use I would rather not put a username
and password
in HTML or PHP for security reasons.
How would I go about writing code to ask the user for a password
and username
on my index page, have it used for all of the other pages on my site, and ultimately have it forgotten when the user closes my website? At the moment I only know HTML, CSS, and some very naive PHP.
in a nutshell: 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>
and in other places, like controlpanel.php:
session_start();
if(!isset($_SESSION['logged_in'])){die('you need to login first!');}
the session id will be stored in a cookie, thanks to session_start(), and the server will remember whether or not this session id is logged in.
这篇关于使用PHP为网站设置登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!