导航:首页 > 编程语言 > php登录验证session

php登录验证session

发布时间:2024-11-24 13:01:38

php中使用session防止用户非法登录后台的方法

本文实例讲述了php中使用session防止用户非法登录后台的方法。分享给大家供大家参考。具体如下:
一般来说,我们登录网站后台时,服务器会把登录信息保存到session文件里,并通过读取session文件来判断是否可以进行后台操作。
以下面为例,假如admin.php是我们的后台操作页面,如果没有启用
session,那么,即便是没有登录,用户照样能访问到该页面,这时候,就需要用到
session
来防止用户非法登录到这个页面了。下面是三个文件的代码
登录页面:login.php
复制代码
代码如下:<h2>用户登录页面</h2>
<form
action="loginProcess.php"
method="post">
用户名:<input
type="text"
name="username"><br
/>
密 码:<input
type="password"
name="pwd"><br
/>
<input
type="submit"
name="sub"
value="登录后台">
</form>
<?php
if(!empty($_GET['errno'])){
if($_GET['errno']==1){

echo
"用户名或密码错误";
}else
if($_GET['errno']==2){

echo
"请输入用户名密码";
}else
if($_GET['errno']==3){

echo
"非法访问,请输入用户名和密码";
}
}
?>
登录信息处理页面:loginProcess.php
复制代码
代码如下:<?php
//这里主要讲session,关于登录信息验证,就不涉及到数据库了
//接收登录信息,保存session
if(!empty($_POST['sub'])){
if($_POST['username']=="admin"
&&
$_POST['pwd']=="admin"){

echo
"登录成功";

session_start();//开启session

$_SESSION['username']
=
$_POST['username'];//将登录名保存到session中

header("Location:
admin.php");

exit();
}else{

header("Location:
login.php?errno=1");

exit();
}
}else{
header("Location:
login.php?errno=2");
exit();
}
?>
后台文件:admin.php
复制代码
代码如下:<?php
session_start();
if(empty($_SESSION['username'])){
header("Location:
login.php?errno=3");
exit();
}
echo
"你是管理员,你现在拥有后台管理权限";
?>
希望本文所述对大家的php程序设计有所帮助。

② PHP会话验证问题,怎么解决

会话控制的思想就是指能够在网站中根据一个会话跟踪用户。这里整理了详细的代码,有需要的小伙伴可以参考下。

概述

http 协议是无状态的,对于每个请求,服务端无法区分用户。PHP 会话控制就是给了用户一把钥匙(一个加密session字符串),同时这也是用户身份的一个证明,服务端存放了这把钥匙能打开的箱子(数据库,内存数据库或者使用文件做的),箱子里面装的就是用户的各个变量信息。

传统的php session 使用

<?php
//page1.php 启动一个会话并注册一个变量
session_start();
$_SESSION['user_var'] = "hello,codekissyoung!";
//这里的可以将$_SESSION理解为用户的箱子,实际的实现是php在服务器端生成的小文件
?>
<?php
//page2.php
session_start();
echo $_SESSION['user_var'];//通过钥匙访问自己的箱子内的变量
$_SESSION['user_var'] = "bey,codekissyoung!";
?>
<?php
//page3.php 销毁钥匙,一般在用户注销时,访问page3.php文件
session_start();
session_destroy();
?>

提一个问题,钥匙呢?没看见给用户钥匙的操作啊?

这个操作是php背后帮我们做了的,自从你访问page1.php 程序运行,session_start();这句时,php 会根据此刻的一些条件(用户ip,浏览器号,时间等)生成一个PHPSESSID变量,http response 回客户端后,这个PHPSESSID就已经存在你的浏览器cookie里了,每次你再次访问这个域名时,该PHPSESSID都会发送到服务端。这个PHPSESSID 就是我这里说的用户钥匙了。

再一个问题,这个PHPSESSID的安全性,它是否容易被窃取,是否容易被伪造,是否容易被篡改?

使用 Https 可以防止被篡改。不使用PHPSESSID,而是自己生成一把秘钥给用户可以防止被伪造。至于是否容易被窃取,还真没怎么研究过。比如如果你电脑连着网,黑客入侵你电脑。

将生成的秘钥存入浏览器cookie中

③ php登录验证问题session

你可以在数据库中创建一个session表,里面存放已登录用户的
用户名、登陆IP、随机码
重要提示:用户每成功登陆一次,那么就更新IP和随机码,随机码会存在$_SESSION['code']里
假设A在机器01上登陆过,那么seesion表存 A、127.0.0.1、123456
情况(1):
1、当A在另外一个机器02从登陆页面登陆,那么按“重要提示”的操作方法,session的数据会被更新成 A、127.0.0.2、456789.
2、然后A在第一台机器01上刷新网页,程序发现数据库中A最新的登陆IP有变动,那么在机器01上将A踢下线。
情况(2):
1、A在同一机器上的另外一个浏览器从登陆页面登陆,那么按“重要提示”的操作方法,session的数据会被更新成 A、127.0.0.1、987545.
2、然后A在第一台机器01上的第一个浏览器刷新网页,程序发现该浏览器与服务器的SESSION中保存的$_SESSION['code']与数据库中A最新的登陆随机码不同,那么在第一个浏览器上将A踢下线。

补充一点:同一台机器上所有利用IE内核的浏览器,其实session是通用的,不管你用纯正的IE、还是各大浏览器的兼容模式,或者是IETester的各个浏览器版本

④ php网站验证登录后怎么跳向用户管理页面

PHP登陆后跳转到用户管理页面,利用$_SERVER全局变量可以实现这个功能。
具体实现方法为:在提示用户登录的同时,在session或者cookie中记录下请求页面的URL;登录验证成功后在跳转回该URL。
1、checklogin.php代码:
session_start();
if (!isset ($_SESSION['login_ok']))
{
echo "<script language=javascript>alert ('要访问的页面需要先登录。');</script>";
$_SESSION['userurl'] = $_SERVER['REQUEST_URI'];
echo '<script language=javascript>window.location.href="login.php"</script>';
}
2、login.php代码
session_start();

//此处省略了账号密码验证代码,验证OK再执行下面代码

if (isset ($_SESSION['userurl']))
{
//会话中有要跳转的页面
$url = $_SESSION['userurl'];
}
else
{
//没有要跳转的页面,则转到首页
$url = "userManager.php";
}
//0.5s后跳转
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";

阅读全文

与php登录验证session相关的资料

热点内容
单片机93加9E的psw 浏览:721
福建少儿频道哪个app可以看 浏览:391
印度加密代币机票 浏览:415
哪个app可以看江西2套 浏览:677
哪个小说app好用还免费 浏览:663
win7ping命令 浏览:505
程序员看图识算法 浏览:947
vs设置远程编译 浏览:598
速腾汽车怎么给安卓手机充电 浏览:270
苹果安卓换机用什么软件好 浏览:261
华为通话加密电话 浏览:60
什么服务器可以代替计算机 浏览:962
服务器当电脑用怎么安装显卡 浏览:521
回女友消息神器python 浏览:52
App分类框怎么添加 浏览:548
海尔帅王子冰箱压缩机启动跳闸 浏览:490
cadfill命令什么意思 浏览:338
中公专项题库pdf 浏览:935
拼多多缓存在哪个文件夹 浏览:645
安卓无卡汽车导航怎么升级 浏览:52