如何使用跨页面存储和使用会话variables?
当访问一个页面时,我想开始一个会话并存储一个会话variables:
<?php session_start(); $_SESSION['myvar']='myvalue'; ?>
然后从另一个页面,我想检查,如果该会话variables已被存储:
<?php session_start(); echo("1"); if(isset($_SESSION['myvar'])) { echo("2"); if($_SESSION['myvar'] == 'myvalue') { echo("3"); exit; } } ?>
这段代码对我不起作用。
从这个问题的评论推理,似乎缺乏一个调整session.save_path导致PHP的会话处理程序的这种不正常的行为。 只需指定一个目录(位于文档根目录之外),PHP目前可读写,以解决这个问题。
所有你想要做的是写— session_start(); —–在这两个页面上
<!-- first page --> <?php session_start(); $_SESSION['myvar'] = 'hello'; ?> <!-- second page --> <?php session_start(); echo $_SESSION['myvar']; // it will print hello ?>
会议一步一步
-
在一切之前定义会话,没有输出应该在那之前, 没有输出
<?php session_start(); ?>
-
在页面中设置会话,然后在该页面中访问。 例如,这是页面1.php
<?php //This is page 1 and then we will use session that defined from this page: session_start(); $_SESSION['email']='email@example.com'; ?>
-
在2.php中使用和获取会话
<?php //In this page I am going to use session: session_start(); if($_SESSION['email']){ echo 'Your Email Is Here! :) '; } ?>
注意 :注释没有输出。
如果第二个页面没有共享访问会话cookie的可能性,则需要使用session_set_cookie_params设置会话cookiepath:
<?php session_set_cookie_params( $lifetime, '/shared/path/to/files/' ); session_start(); $_SESSION['myvar']='myvalue';
和
<?php session_set_cookie_params( $lifetime, '/shared/path/to/files/' ); session_start(); echo("1"); if(isset($_SESSION['myvar'])) { echo("2"); if($_SESSION['myvar'] == 'myvalue') { echo("3"); exit; } }
每次开始会话(适用于PHP 5.2.54版本), session_start()
都会创build一个新的会话ID。
这是为我工作的修复程序。
File1.php
session_id('mySessionID'); //SET id first before calling session start session_start(); $name = "Nitin Hurkadli"; $_SESSION['username'] = $name;
File2.php
session_id('mySessionID'); session_start(); $name = $_SESSION['username']; echo "Hello " . $name;
开始会话:
把下面的代码放在文件的顶部。
<?php session_start();?>
存储会话variables:
<?php $_SESSION['id']=10; ?>
要检查会话variables中是否存储了数据:
<?php if(isset($_SESSION['id']) && !empty(isset($_SESSION['id']))) echo “Session id “.$_SESSION['id'].” exist”; else echo “Session not set “;?>
尝试这个
第一页
<?php session_start(); $_SESSION['myvar']='myvalue'; ?>
第二页
<?php session_start(); echo $_SESSION['myvar']; ?>
尝试这个:
<!-- first page --> <?php session_start(); session_register('myvar'); $_SESSION['myvar'] == 'myvalue'; ?> <!-- second page --> <?php session_start(); echo("1"); if(session_is_registered('myvar')) { echo("2"); if($_SESSION['myvar'] == 'myvalue') { echo("3"); exit; } } ?>