php session跨页面传值实例详解

发布时间:2020-12-30编辑:脚本学堂
本文介绍了php session跨页面传值的方法,php页面间传值的注意问题,session必须是同一浏览器进程之间传递,多窗口浏览器新开标签之间可以传递,不了解的朋友可以参考下。

有关php跨页面传值的例子。

1,页面 a.php
 

复制代码 代码示例:
<?php
session_start();
$name = "miao3760";
$_session["name"]=$name;
?>

2、b.php 接收session跨页面传值
 

复制代码 代码示例:
<?php
session_start();
echo $_session["name"];
?>
 

注意:
1,两个页面开头要写session_start();,并且一定要放在开头,其之前不能有任何代码;
2,$_session,一定要大写,否则不能跨页传值;
3,php4以前是用session_register("abc");来注册变量,新版的php5已经改为:$_session["name"];
4,session,必须是同一浏览器进程之间传递,多窗口浏览器新开标签之间可以传递,单窗口ie要在储存session的页面窗口基础之上打开新页面才可以传值。

第二部分,php session的网页间传值的例子。

建立三个网页,test3.html;test.php;test4.php

test3.html(用于表单的输入)
 

复制代码 代码示例:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>php页面传值 - www.jb200.com</title>
</head>
<body>
请登陆:<br>
<form action="test.php" method="post">
 请输入你的用户名:<input type="text" /><br>
 请输入你的密码:<input type="password"   /><br>
 <input type="submit" value="提交"  />
</form>
</body>
</html>

2、test.php(用于表单的接收和session的写入)
 

复制代码 代码示例:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>test</title>
<?
 $user=$_post['user_text'];
 $pass=$_post['user_pass'];
 if(!$user or !$pass){
  //ob_start();//打开缓冲区
  echo "<script type="text/javascript">alert("登陆失败,用户名或则是密码没有输入");window.location="test3.html";</script>";
  //sleep(3);
  //header("location:test3.html");//重新定向到test3.html
  //ob_end_flush();//输出所有并关闭缓冲区
  die();//退出程序,为了安全
 }
 if($user!="pan" or $pass!="123"){
  die("登陆失败,用户名或则是密码错误");
 }
 else
 ob_start();//打开缓冲区
 echo "欢迎你".$user."<br>";
 session_start();
 $_session['user']=$user;
 $psid=session_id();
 $fp=fopen("../phpsid.txt","w+");
 echo "你的session_id是:".$psid."<br>";
 echo "session_id存放的地址是:<a href="../phpsid.txt">../phpsid.txt</a><br>";
 fwrite($fp,$psid);
 fclose($fp);
 echo "<a href="test4.php">下一页</a><br>";
?>
</head>
<body>
<?
$m="\192.168.0.99";//192.168.0.99在php中是这样写的
echo $m;
?>
</body>
</html>
 

3、test4.php(用于检查)
 

复制代码 代码示例:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>test4</title>
</head>
<body>
<?php
$fp=fopen("../phpsid.txt","r");
$sid=fread($fp,1024);
fclose($fp);
session_id($sid);
session_start();
if(isset($_session['user']) and $_session['user']="pan" ) {
echo "已登录!";
}
else {
//成功登录进行相关操作
echo "未登录,无权访问";
echo "请<a href="test3.html">登录</a>后浏览";
die();
}
?>