php 如何跨页面使用存储和使用会话变量?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5489365/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to use store and use session variables across pages?
提问by ab11
When one page is accessed, I would like to start a session and store a session variable:
当访问一个页面时,我想启动一个会话并存储一个会话变量:
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Then from another page, I would like to check if that session variable has been stored:
然后从另一个页面,我想检查该会话变量是否已存储:
<?php
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
?>
This code does not work for me.
这段代码对我不起作用。
采纳答案by Gumbo
Reasoning from the comments to this question, it appears a lack of an adjusted session.save_pathcauses this misbehavior of PHP's session handler. Just specify a directory (outside your document root directory) that exists and is both readable and writeable by PHP to fix this.
从对这个问题的评论来看,似乎缺少调整后的session.save_path会导致 PHP 会话处理程序的这种不当行为。只需指定一个存在且 PHP 可读可写的目录(在文档根目录之外)即可解决此问题。
回答by Mohammad Kermani
Sessions Step By Step
分步会议
Defining session before everything, No output should be before that, NO OUTPUT
<?php session_start(); ?>
Set your session inside a page and then you have access in that page. For example this is page 1.php
<?php //This is page 1 and then we will use session that defined from this page: session_start(); $_SESSION['email']='[email protected]'; ?>
Using and Getting session in 2.php
<?php //In this page I am going to use session: session_start(); if($_SESSION['email']){ echo 'Your Email Is Here! :) '; } ?>
在一切之前定义会话,在那之前应该没有输出,没有输出
<?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 protected]'; ?>
在2.php 中使用和获取会话
<?php //In this page I am going to use session: session_start(); if($_SESSION['email']){ echo 'Your Email Is Here! :) '; } ?>
NOTE: Comments don't have output.
注意:评论没有输出。
回答by gaurav
All you want to do is write --- session_start(); ----- on both pages..
您要做的就是编写 --- session_start(); ----- 在两页上..
<!-- first page -->
<?php
session_start();
$_SESSION['myvar'] = 'hello';
?>
<!-- second page -->
<?php
session_start();
echo $_SESSION['myvar']; // it will print hello
?>
回答by zzzzBov
In the possibility that the second page doesn't have shared access to the session cookie, you'll need to set the session cookie path using session_set_cookie_params:
如果第二页没有对会话 cookie 的共享访问权限,您需要使用session_set_cookie_params设置会话 cookie 路径:
<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
$_SESSION['myvar']='myvalue';
And
和
<?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;
}
}
回答by vivek
Try this
尝试这个
First Page
第一页
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Second page
第二页
<?php
session_start();
echo $_SESSION['myvar'];
?>
回答by Nitin Hurkadli
Every time you start a session (applies to PHP version 5.2.54), session_start()
creates a new session id.
每次启动会话(适用于 PHP 5.2.54 版)时,session_start()
都会创建一个新的会话 ID。
Here is the fix that worked for me.
这是对我有用的修复程序。
File1.php
文件1.php
session_id('mySessionID'); //SET id first before calling session start
session_start();
$name = "Nitin Hurkadli";
$_SESSION['username'] = $name;
File2.php
文件2.php
session_id('mySessionID');
session_start();
$name = $_SESSION['username'];
echo "Hello " . $name;
回答by user3796796
Starting a Session:
开始会话:
Put below code at the top of file.
将下面的代码放在文件的顶部。
<?php session_start();?>
Storing a session variable:
存储会话变量:
<?php $_SESSION['id']=10; ?>
To Check if data stored in session variable:
检查数据是否存储在会话变量中:
<?php if(isset($_SESSION['id']) && !empty(isset($_SESSION['id'])))
echo “Session id “.$_SESSION['id'].” exist”;
else
echo “Session not set “;?>
?> detail here http://skillrow.com/sessions-in-php-4/
回答by iamandrus
Try this:
尝试这个:
<!-- 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;
}
}
?>