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



我试图弄清楚如何使用php$_SESSION值。 情况是:

  • 主 HTML 站点有一个加载产品的<iframe>.php
  • 产品中.php表单提交并保存以下两个值:

    $_SESSION["小计"] = $_POST['子分类'];

    $_SESSION["税"] = $_POST["税"];

  • 这些工作得很好,我可以毫无问题地回应它们(在该页面内(

  • 此页面将产品替换为确认.php.php

一旦确认.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>的变化而丢失?

我在产品.php页面上使用以下代码来确认会话是合法创建的 - 它们是:

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

笔记:

  • 确认和产品.php都在同一台服务器上。
  • print_r($_SESSION(;返回空白数组。
  • session_start(( 位于两个页面的最顶部

使用类似这样的东西:

产品.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.";
}

我曾经通过在 iframe 内部的 url 中添加 $_SESSION 来做到这一点,在 iframe 中使用的文件中,我使用了 $_SESSION 乘以 $_GET。

我不确定 100%,但它应该工作为:

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

某页.php

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

最新更新