使用PHP为网站设置登录 [英] Setting up a log-in for a website using PHP

查看:86
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆