Не удается передать переменные сеанса PHP на несколько страниц - PullRequest
2 голосов
/ 05 марта 2012

, поэтому у меня проблема с передачей переменных сеанса php на несколько страниц.

По сути, у меня есть 1 форма, которая собирает ответы.после отправки пользователь попадает на страницу, где в зависимости от выбора, который он сделал в форме, он увидит страницу, загруженную в 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>

Страница 1 (после отправки формы предложения. Php)

<?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>

страница2 (пользователь попадает сюда по гиперссылке - offer2.php)

<?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

Ответы [ 3 ]

1 голос
/ 05 марта 2012

Это ваша проблема на странице 2:

$_SESSION['name0'] = $_POST['name0'];
$_SESSION['name1'] = $_POST['name1'];

Пользователь попадает туда по гиперссылке, поэтому массив $_POST пуст и вы перезаписываете переменные сеанса пустыми.

Вы можете получить данные через переменные сеанса:

$name0 = $_SESSION['name0'];
// etc.
1 голос
/ 05 марта 2012

На странице 2 вы перезаписываете переменные сеанса несуществующими переменными записи. Изменить это:

$_SESSION['name0'] = $_POST['name0'];
$_SESSION['name1'] = $_POST['name1'];


$name0 = $_POST['name0'];

$name1 = $_POST['name1'];

к этому:

$name0 = $_SESSION['name0'];

$name1 = $_SESSION['name1'];
1 голос
/ 05 марта 2012

Вы назначаете переменную сеанса только один раз, поэтому страница 1 верна, а затем доступна для всего сеанса, использует session_start () вверху каждой страницы.

page2 (пользователь попадает сюда по гиперссылке - offer2.php)

<?php 
session_start(); 

$name0 = $_SESSION['name0'];
$name1 = $_SESSION['name1'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...