2017-02-12 5 views
1

Я прошел через 20 или около того разных постов, и, похоже, я не могу правильно это сформулировать вопросы и ответы для разных аспектов того, что я пытаюсь выполнить ,POST множественные переменные сеанса с формой, вывод на последующие страницы

У меня есть форма, которую пользователь может заполнить. Я хочу, чтобы при отправке формы, сделанные выборы будут использоваться в качестве переменных на всей остальной части веб-сайта.

Мой код:

<form action="page1" method="POST"> 
    <input type="text" name="var_1"> 
    <input type="text" name="var_2"> 
    <input type="submit" value="Submit" class="submit" name="submit"> 
</form> 


<?php 

session_start(); 

if (isset($_POST['submit'])) { 

    $_SESSION['var_1'] = $_POST['var_1']; 
    $_SESSION['var_2'] = $_POST['var_2']; 

} 
?> 

Следующая страница:

<?php 

session_start(); 

$var_1 = $_SESSION['var_1']; 
$var_2 = $_SESSION['var_2']; 

?> 

<?php echo $var_1';?> 
<?php echo $var_2';?> 

Это приводит к пустой эху и повторной ошибки для каждой переменной в верхней части страницы:

Notice: Undefined index: var_1 in page1.php on line # 

Очевидно, что мои сеансы не делают его второй страницей, но я не знаю, почему и что я сделал неправильно. Это было собрано вместе с сообщениями о добавлении нескольких сеансов, сеансах проводки, получении сеансов.

+0

Что такое 'action =" page1 "' без расширения? – affaz

+0

Ну, это page1.php технически, но я обрабатываю это с помощью .htaccess - мне не нравятся URL-адреса .php. – Faye

+0

см. Мой ответ ниже – affaz

ответ

2

Либо Удалите action из вашего <form> и дать редирект page1 в коде PHP, поскольку PHP код ниже не будут работать и получить перенаправлены к следующему page.As в результате чего не будет установлен сеанс

<form action="" method="POST"> 
     <input type="text" name="var_1"> 
     <input type="text" name="var_2"> 
     <input type="submit" value="Submit" class="submit" name="submit"> 
    </form> 
    <?php 

session_start(); 

if (isset($_POST['submit'])) { 

    $_SESSION['var_1'] = $_POST['var_1']; 
    $_SESSION['var_2'] = $_POST['var_2']; 
    //redirect 
    header("Location: page1.php"); 
} 
?> 

Или установите session в следующей странице без кода ниже

<form action="page1" method="POST"> 
    <input type="text" name="var_1"> 
    <input type="text" name="var_2"> 
    <input type="submit" value="Submit" class="submit" name="submit"> 
</form> 

page1.php

<?php 

session_start(); 
$_SESSION['var_1'] = $_POST['var_1']; 
$_SESSION['var_2'] = $_POST['var_2']; 
$var_1 = $_SESSION['var_1']; 
$var_2 = $_SESSION['var_2']; 

?> 

<?php echo $var_1;?> 
<?php echo $var_2;?> 
+0

Мои действия разрушают его! Благодаря! Вопрос: как мне перенаправить их на страницу1 после отправки? (php novice) – Faye

+0

@REactionFaye Добро пожаловать :) – affaz