我试图弄清楚如何使用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'];
}