【问题标题】:PHP Sessions variablesPHP 会话变量
【发布时间】:2013-05-01 14:02:50
【问题描述】:

我有 3 个页面,一个 HTML 页面 (session.html) 和 2 个 PHP 页面 (session.php & sessiona.php)。 html 页面上有一个只有 2 个字段的表单,一个是文本框(客户名称),另一个是选择列表(爱好)。 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 的链接,我想从 sesssion.php 检索存储的变量并显示它们。有没有办法做到这一点?

【问题讨论】:

  • 一种方法是使用cookies。
  • 不是 $_session[] 而是 $_SESSION[]
  • 对不起,$_session$_SESSION 一样吗?
  • session_start() 之前不能有 any 输出,否则它将不起作用并产生错误。
  • @sgroves :在 cookie 中存储数据是一个坏习惯。最好存储一个 ID(例如 SESSION id)。

标签: php session hyperlink store


【解决方案1】:

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

<?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()!empty()

【讨论】:

    【解决方案2】:

    设置就足够了

    session_start(); 
    

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-03
      • 2011-06-09
      • 1970-01-01
      • 2012-07-06
      • 2013-04-13
      • 2015-07-02
      • 2014-08-02
      • 2011-07-19
      相关资源
      最近更新 更多