PHP会话变量

PHP会话变量,php,session,hyperlink,store,Php,Session,Hyperlink,Store,我有3个页面,一个HTML页面(session.HTML)和2个PHP页面(session.PHP和sessiona.PHP)。html页面上有一个表单,只有两个字段,一个是文本框(customername),另一个是选择列表(hobby)。HTML页面上的操作是发送到session.php,我在其中以以下方式存储变量: <body> <?php session_start(); $_session['name'] = $_POST['customername']; $_s

我有3个页面,一个HTML页面(session.HTML)和2个PHP页面(session.PHP和sessiona.PHP)。html页面上有一个表单,只有两个字段,一个是文本框(customername),另一个是选择列表(hobby)。HTML页面上的操作是发送到session.php,我在其中以以下方式存储变量:

<body>

<?php
session_start();

$_session['name'] = $_POST['customername'];
$_session['hobby'] = $_POST['hobby'];

$name = $_session['name'];
$hobby = $_session['hobby'];

?>

<p><a href="sessiona.php">Sessiona</a></p>

</body>


session.php的目的只是存储变量,并且只显示指向sessiona.php的链接,我想从sessession.php检索存储的变量并显示它们。有没有办法做到这一点?

只需设置

session_start(); 
在sessiona.php中,您可以按照建议的方式获取变量:

$name = $_SESSION['name']; 
$hobby = $_SESSION['hobby'];

开始创建会话变量的任何页面

<?php session_start();
$_SESSION['name'] = $_POST['customername'];
$_SESSION['hobby'] = $_POST['hobby'];
?>
<html>...</html>

...
创建会话数据后检索该会话数据的任何页面

<?php
if(isset($_SESSION['name'])) { $name = $_SESSION['name'] }
if(isset($_SESSION['hobby'])) { $hobby = $_SESSION['hobby'] }
?>
<html>...<?php echo($name) ?>...or...<?php echo($_SESSION['name'])?>...</html>

注意:您需要检查该会话变量,以确保不会在echo上抛出错误<代码>isset(),
!空()
,等等。

一种方法是使用cookie。这不是$\u会话[]它是$\u会话[]对不起,
$\u会话
与$\u会话相同?在会话开始()之前不能有任何输出,否则它将无法工作并将生成错误。@sgroves:将数据存储在cookies中是一个坏习惯。最好存储一个ID(例如会话ID)。