Heim > Backend-Entwicklung > PHP-Tutorial > php之session会话统制

php之session会话统制

WBOY
Freigeben: 2016-06-13 12:16:20
Original
802 Leute haben es durchsucht

php之session会话控制

当浏览器将 cookie 数据关闭之后,网站使用cookie传递将不能进行,而url参数传递还是能够进行(session),其实编写php的session会话控制整体和cookie会话控制一样

首先建立编写要用到的php文件


这一步是和 cookie 一样,其实session也可以通过cookie进行传递,在 cookie的基础上在开的头开启session:session_start()

如:

<?php session_start();    //判断:如果没登录自动跳转到登录页面    if(!$_SESSION["isLogin5"]){        header("Location:login.php");    }
Nach dem Login kopieren

下面要注意的是,login.php 的跳转页面不能使用header 而只能通过 javascript 进行跳转

//跳转界面echo '<script>&#39;;echo "location=&#39;index.php&#39;";echo &#39;</script>';
Nach dem Login kopieren

然后将 $_COOKIE[ ] 改为 $_SESSION[ ]  即可

session 通过 cookie传递就是这样,下面主要是讲解一下 url参数传递

第一种:通过sid的方式进行参数传递,即在链接或表单后加上 “?sid=

这种方法也可以使用配置文件中的PHPSESSID来替换sid,也能达到一样的效果

login.php

			<title>用户登录</title>				
Nach dem Login kopieren
Nach dem Login kopieren

用户登录

用户名
密码
login.php 的php部分也稍作修改

<?php session_start();	echo session_id()."<br>";  //跳转页面不能不是header    if(isset($_POST["sub"])){    	include "conn.inc.php";    	$sql="select id from users where name='{$_POST["name"]}' and password='".md5($_POST["password"])."'";    	$result=$mysqli->query($sql);    	//保存数据    	if($result->num_rows > 0){    		$row=$result->fetch_assoc();    		    		$_SESSION["username"]=$_POST["name"];    		$_SESSION["uid"]=$_POST["uid"];    		$_SESSION["isLogin5"]=1;    		//跳转界面    		echo '<script>&#39;;    		echo "location=&#39;index.php?sid=".session_id()."&#39;";   //将session_id() 调过来    		echo &#39;</script>';    	}    	echo "用户名密码有误";    }?>
Nach dem Login kopieren
其它页面只要在链接后面加上 “?sid=”  即可

注销程序不像cookie那样,分四步:开启、清空、删除和彻底销毁

    //开启session    session_start();    //情况session值    $_SESSION=array();    //删除客户端的在cookie中的sessionid    if(isset($_COOKIE[session_name()])){        setCookie(session_name(),'',time()-3600,'/'); //一定要写上第四个参数(路径)    }    //彻底销毁session    session_destroy();
Nach dem Login kopieren

第二种,不需要设置根据浏览器是否开启cookie数据功能而自动选择用cookie还是session进行传递

a、  链接或表单后面都加上 ”?, 这个跟通过sid传递相似,不过SID是常数

index.php:

    <a href="test.php?<?php%20SID%20?>">第二页</a><br>    <a href="test2.php?<?php%20SID%20?>">第三页</a><br>    <a href="logout.php?<?php%20SID%20?>">退出</a><br>
Nach dem Login kopieren

login.php:
   		//跳转界面    		echo '<script>&#39;;    		echo "location=&#39;index.php?".SID."&#39;";   //SID 常量如果开启cookie则使用cookie,如果没开启就用session    		echo &#39;</script>';
Nach dem Login kopieren

			<title>用户登录</title>				
Nach dem Login kopieren
Nach dem Login kopieren

用户登录

用户名
密码

b修改php.ini配置文件

代码基本和cookie传递的一样,就只是开头需要开启session:session_start();

作法:将配置文件中 session.use_trans_sid 的值改为 1
作用:在所有链接的地方默认加上 PHPSESSID 的形式



具体代码见下一篇博客

















Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage