PHP Session变量,实现session服务器端存储用户信息,阻止未登录跳转主页
2016-07-21 15:12
921 查看
一、session认识:
当user登入一个具有Session功能的网站时,系统会给于该user一个独有的Session
ID 以便在服务器中建立新的Session,来储存user的资料,提供网站中各个网页与程序使用。
二、这里呢!先给大家说几个session的概念:
1.session的作用:是用来在服务器端存储用户信息,当浏览器关闭的时候,会自动销毁。
2.session销毁的代码函数:unset() 函数用于释放指定的 session 变量,例unset($_SESSION['views']);
也可以通过调用 session_destroy() 函数彻底销毁 session,将重置 session,您将失去所有已存储的 session 数据;
Session_unset():取消所有已注册的Session变量
注意:
有效期限过期 :一般PHP系统中对Session的有效期限,默认值是0
,也就是不限时间。但PHP程序人员还是可以透过修改php.ini档案中有关「session.cookie_lifetime」项目,来设定Session的有效期限。过期后,不管浏览器是否还开着,Session都会自动消灭。
3.超级数组$_SESSION可以实现session的设置与读取。
三、这里先说说有关session的启动,设置,读取,判断是否存在。
1.启动Session是透过session_start()函数来完成,让PHP核心程序将Session相关的内建环境变量,预先加载内存中。
启动Session的语法格式:
<?php
session_start();
?>
2.在PHP之中使用Session变量,除了必须要启动之外,还要经过注册(设置)的手续,例如:
<?php
session_start();
//注册(设置)
$_SESSION[“user_ID”] = “32145“;
?>
3.在PHP之中,Session是以$_SESSION结合数组变量来存取Session中的数据,例如:
<?php
session_start();
$_SESSION["Name"] ="Daniel" ;
//取出
echo $_SESSION["Name"] ;
?>
接下来,给大家举个例子:
登录跳转进入主页。(功能性说明说明:用session阻止未登录跳转主页的情况 )
1.登录页表单提交数据;
2.服务器接收数据,并设置session;
3.在主页判断session是否存在,存在则通过访问。
登录页表单提交login.html
ServerLogin.php服务器接收数据并设置session。
主页html被改为.php文件后,在文件头中写入session是否设置的判断。
存储用户信息的data.php文件:
补充:
此篇所写服务器中携带有js端的localStorage的设置方法,以及注意点。
过段时间,我会详细讲解js端的localStorage本地存储的调用,以及它的其他属性和概念。
当user登入一个具有Session功能的网站时,系统会给于该user一个独有的Session
ID 以便在服务器中建立新的Session,来储存user的资料,提供网站中各个网页与程序使用。
二、这里呢!先给大家说几个session的概念:
1.session的作用:是用来在服务器端存储用户信息,当浏览器关闭的时候,会自动销毁。
2.session销毁的代码函数:unset() 函数用于释放指定的 session 变量,例unset($_SESSION['views']);
也可以通过调用 session_destroy() 函数彻底销毁 session,将重置 session,您将失去所有已存储的 session 数据;
Session_unset():取消所有已注册的Session变量
注意:
有效期限过期 :一般PHP系统中对Session的有效期限,默认值是0
,也就是不限时间。但PHP程序人员还是可以透过修改php.ini档案中有关「session.cookie_lifetime」项目,来设定Session的有效期限。过期后,不管浏览器是否还开着,Session都会自动消灭。
3.超级数组$_SESSION可以实现session的设置与读取。
三、这里先说说有关session的启动,设置,读取,判断是否存在。
1.启动Session是透过session_start()函数来完成,让PHP核心程序将Session相关的内建环境变量,预先加载内存中。
启动Session的语法格式:
<?php
session_start();
?>
2.在PHP之中使用Session变量,除了必须要启动之外,还要经过注册(设置)的手续,例如:
<?php
session_start();
//注册(设置)
$_SESSION[“user_ID”] = “32145“;
?>
3.在PHP之中,Session是以$_SESSION结合数组变量来存取Session中的数据,例如:
<?php
session_start();
$_SESSION["Name"] ="Daniel" ;
//取出
echo $_SESSION["Name"] ;
?>
接下来,给大家举个例子:
登录跳转进入主页。(功能性说明说明:用session阻止未登录跳转主页的情况 )
1.登录页表单提交数据;
2.服务器接收数据,并设置session;
3.在主页判断session是否存在,存在则通过访问。
登录页表单提交login.html
<form action="ServerLogin.php" method="post" enctype="application/x-www-form-urlencoded"> <input id="us" type="text" name="username" class="username" placeholder="Username"> <input id="pw" type="password" name="password" class="password" placeholder="Password"> <button type="submit">Sign me in</button> <div class="error"><span>+</span></div> </form>
ServerLogin.php服务器接收数据并设置session。
<?php /** * Created by PhpStorm. * User: 洋 汪 * Date: 2016/7/19 * Time: 11:53 */ header("Content-type:text/html;charset=utf-8"); //引入数据存储文件 include "data.php"; //$_SERVER["REQUEST_METHOD"]获取请求的方式是什麽。 if ($_SERVER["REQUEST_METHOD"] == "POST") { //判断登录页填写的数据与数据文件的数据(用户名和密码)是否一致。 if ($_POST["username"] == $info["username"] && $_POST["password"] == $info["password"]) { //设置localStorage,html5的js端本地存储。 setLocalStorage($_POST); //设置session的数据设置 $mySession = $_POST; //数组合并:array_merge(目标数组,目标数组追加的数组); //$_SERVER["REMOTE_ADDR"]服务请求远程ip地址 $mySession = array_merge($mySession, array( "loginIp" => $_SERVER["REMOTE_ADDR"], "loginTime" => time())); //在方法中设置session setSession($mySession); //设置session后跳转主页index.php,在主页判断是否设置session echo "<script>window.location.href ='index.php';</script>"; } else { echo "<script>alert('用户名或密码错误!!!'); window.location.href = 'login.html'; </script>"; } } else { //非POST请求时 echo "<script> alert('请登录!!!'); window.location.href = 'login.html'; </script>"; } //设置session方法,array $mySession参数命名强制必须传进来的参数为数组形式 function setSession(array $mySession) { //启动session session_start(); // $_SESSION = $mySession; //$_SESSION = $mySession的$_SESSION值:Array ( [username] => wangyang // [password] => 123456 [loginIp] =&g dd2b t; 127.0.0.1 [login_time] => 1468915628 ) // print_r($_SESSION); //设置session $_SESSION["username"] = $mySession["username"]; $_SESSION["password"] = $mySession["password"]; $_SESSION["loginIp"] = $mySession["loginIp"]; $_SESSION["loginTime"] = $mySession["loginTime"]; } //设置localStorage的本地存储 function setLocalStorage(array $myLocalStorage) { //JS端的localStorage:HTML5提供的本地存储方式(可以称为“键值对”数据库)
//charset='utf-8'是必须的设置。echo "<script type='text/javascript' charset='utf-8'> localStorage.setItem('username'," . "'" . $myLocalStorage["username"] . "'" . "); localStorage.setItem('pwd'," . "'" . $myLocalStorage["password"] . "'" . ");</script>";}?>
主页html被改为.php文件后,在文件头中写入session是否设置的判断。
<?php session_start(); if (!isset($_SESSION["username"]) || !isset($_SESSION["password"])) { //未登录就不会被设置session,就会跳回登录页。否则,继续向下执行html代码。 echo "<script>alert('请登录!!!'); window.location.href = 'login.html'; </script>"; // session_destroy(); } ?>
存储用户信息的data.php文件:
<?php /** * Created by PhpStorm. * User: 洋 汪 * Date: 2016/7/19 * Time: 11:52 */ $info = array("username"=>"wangyang","password"=>"123456"); ?>
补充:
此篇所写服务器中携带有js端的localStorage的设置方法,以及注意点。
过段时间,我会详细讲解js端的localStorage本地存储的调用,以及它的其他属性和概念。
相关文章推荐
- Angularjs 跨域请求
- kindeditor 批量上传 上传失败 thinkphp swfupload session
- 杰奇登录后的东西都是在session里面的
- ASP中SESSION无法保存问题的解决办法
- Oracle中的Connect/session和process的区别及关系介绍
- Node.js编程中客户端Session的使用详解
- 完美解决ajax访问遇到Session失效的问题
- 浅谈COOKIE和SESSION区别
- 解析PHP的session过期设置
- php中Session的生成机制、回收机制和存储机制探究
- php中将一个对象保存到Session中的方法
- 深入解析Session是否必须依赖Cookie
- 对比分析php中Cookie与Session的异同
- PHP Session机制简介及用法
- 新手菜鸟必读:session与cookie的区别
- 深入讲解PHP Session及如何保持其不过期的方法
- PHP Session变量不能传送到下一页的解决方法
- PHP中的session永不过期的解决思路及实现方法分享
- php session实现多级目录存放实现代码