所以我在将php会话变量传递给多个页面时遇到了问题。
基本上我有一个收集答案的表格。在提交时,用户被带到一个页面,该页面取决于他们在表单中做出的选择,他们将看到在iframe中加载的页面。我已经想出如何使它从表单提交到第一页工作,但是当我尝试将变量转移到另一个页面(通过超链接)时,它们不会停留。
下面是我的代码:
<form method="post" action="offers.php">
0. <input type="text" name="name0"/> <br/><br/>
1. <input type="text" name="name1"/> <br/><br/>
<input type="submit" name="submit"/> </form>
<?php
session_start();
$_SESSION['name0'] = $_POST['name0'];
$_SESSION['name1'] = $_POST['name1'];
$name0 = $_POST['name0'];
$name1 = $_POST['name1'];
if ($name0 == 'dave')
$site="offer1.php";
elseif ($name0 == 'john')
$site="offer1a.php";
else
$site="http://websiteC.com";
?>
<HTML>
<body>
<div style="height:90px;">header</div>
<iframe src="<?php echo $site; ?>" name="offerFrame" style="width:100%; height:100%;" align="center"></iframe>
<br>
<a href="offer2.php">dfsdf</a>
</body>
</HTML>
<?php
session_start();
$_SESSION['name0'] = $_POST['name0'];
$_SESSION['name1'] = $_POST['name1'];
$name0 = $_POST['name0'];
$name1 = $_POST['name1'];
if ($name1 == 'dave')
$site="2a.php";
elseif ($name1 == 'john')
$site="2b.php";
else
$site="http://websiteC.com";
?>
<HTML>
<body>
<div style="height:90px;">header</div>
<iframe src="<?php echo $site; ?>" name="offerFrame" style="width:100%; height:100%;" align="center"></iframe>
<br>
<a href="offer3.php">dfsdf</a>
</body>
</HTML>
感谢您的帮助
-Dave
答案 0 :(得分:1)
您只需分配一次会话变量,因此第1页正确,然后可用于整个会话,使用每页顶部的session_start()。
第2页(用户通过超链接来到这里 - offer2.php)
<?php
session_start();
$name0 = $_SESSION['name0'];
$name1 = $_SESSION['name1'];
答案 1 :(得分:1)
这是第2页的问题:
$_SESSION['name0'] = $_POST['name0'];
$_SESSION['name1'] = $_POST['name1'];
用户通过超链接到达那里,因此$_POST
数组为空,并且您使用空的数据覆盖会话变量。
您可以通过会话变量获取数据:
$name0 = $_SESSION['name0'];
// etc.
答案 2 :(得分:1)
在第2页中,您使用不存在的post变量覆盖会话变量。改变这个:
$_SESSION['name0'] = $_POST['name0'];
$_SESSION['name1'] = $_POST['name1'];
$name0 = $_POST['name0'];
$name1 = $_POST['name1'];
到此:
$name0 = $_SESSION['name0'];
$name1 = $_SESSION['name1'];