如何将PHP $ _SESSION值传递给新页面

时间:2017-08-25 21:00:15

标签: php html

我试图找出如何使用php $_SESSION值。情况是:

  • 主HTML网站的<iframe>加载 products.php
  • products.php 中,表单会提交并保存以下两个值:

    $ _ SESSION [“subtotal”] = $ _POST ['SUBT'];

    $ _ SESSION [“tax”] = $ _POST ['TAX'];

  • 这些工作得很好我可以回答它们没问题(在那个页面内)

  • 此页面将 products.php 替换为 confirmation.php

进入confirmation.php后,我无法获取会话值。我尝试过以下方法:

<?php
session_start();

$_SESSION["subtotal"] = $_POST['SUBT'];
$_SESSION["tax"] = $_POST['TAX'];

echo $_SESSION["subtotal"];
echo $_SESSION["tax"];
echo $subtotal;
echo $tax;

?>

和     

$_SESSION["subtotal"] = $subtotal;
$_SESSION["tax"] = $tax;

echo $_SESSION["subtotal"];
echo $_SESSION["tax"];
echo $subtotal;
echo $tax;

?>

和     

$subtotal = $new_subtotal;
$tax = $new_tax;

echo $new_tax;
echo $new_subtotal;

?>

所有人都看不到$_SESSION - <iframe>更改后价值是否会丢失?

我在 products.php 页面上使用了以下代码来确认会话是否已成功创建 - 它们是:

echo $_SESSION["subtotal"]." stored in session <br />";
echo $_SESSION["tax"]." stored in session <br />";

备注:

  • 确认&amp; products.php在同一台服务器上。
  • 的print_r($ _ SESSION);返回BLANK数组。
  • session_start()位于两个页面的最顶层

2 个答案:

答案 0 :(得分:0)

使用类似的东西:

products.php

<?php
session_start();
$_SESSION['myValue']=$_GET['YourFormElement'];
//or
$_SESSION['myValue']=3; // You can set the value however you like.
?>

任何其他PHP页面:

<?php
session_start();
echo $_SESSION['myValue'];
?>

要记住的一些注意事项:你需要在任何输出,HTML,回声 - 甚至空白之前调用session_start()。

您可以继续更改会话中的值 - 但它只能在第一页之后使用 - 这意味着如果您在第1页中设置它,则在转到另一页之前将无法使用它或刷新页面。

变量本身的设置可以通过多种方式之一完成:

$_SESSION['myValue']=1;
$_SESSION['myValue']=$var;
$_SESSION['myValue']=$_GET['YourFormElement'];

如果您想在获得潜在错误之前检查变量是否已设置,请使用以下内容:

if(!empty($_SESSION['myValue'])
{
    echo $_SESSION['myValue'];
}
else
{
    echo "Session not set yet.";
}

答案 1 :(得分:0)

我通过在iframe中添加$ _SESSION并在iframe中使用的文件中执行了一次我使用$ _SESSION $ _GET。

我不确定100%,但它应该如下:

$session = $_SESSION['session'];

<iframe src="somePage.php?s=<?php echo $session; ?>"></iframe>

somePage.php

if(isset($_GET['s'])){
   $session = $_GET['s'];
}