2012-05-12 2 views
-1

Я могу установить переменные сеанса и использовать их на другой странице. Однако, когда я пытаюсь использовать простую форму контакта с именем пользователя и адресом электронной почты и пытаюсь сохранить их в переменных сеанса, они не отображаются на других страницах. Должно быть, что-то основное, что мне не хватает.Переменные сеанса из формы, не отображающейся на следующей странице

Вот форма:

<?php 
session_start(); 
$submit = $_POST["submit"]; 
if($submit){setSessionVars();} 
function setSessionVars() { 
    $_SESSION['name'] = $_POST['name']; 
    $_SESSION['email'] = $_POST['email']; 
    header('Location: session.php'); 
} 
?> 

<html> 
<body> 
    <form action="session.php" method"post"> 
    <input name="name" type="text" value="Name" size="11" /><br /> 
    <input name="email" type="text" value="Email" size="11" /><br /><br /> 
    <input name="submit" type="submit" value="Submit" size="11" /> 
    </form> 
</body> 
</html> 

И это session.php:

<?php 
session_start(); 
echo $_SESSION['name']; 
echo $_POST['name']; 
?> 

Также

header('Location: session.php'); 

не работает. Есть идеи?

+1

Когда вы отправляете форму на session.php, вы получаете какие-либо значения? Это не похоже на то, что вы вызываете setSessionVars() на этой странице. – effulge

ответ

4

С первого взгляда, я вижу одну непосредственную проблему, которая сохранит форму от публикации.

<form action="session.php" method"post"> 

Вам нужен знак «=» между методом и «постом».

Изменение этого параметра даст вам «t» в session.php.

+0

Briliant! Так оно и было. Большое спасибо. – Ben

1

Вы размещаете форму на session.php:

<form action="session.php" method"post"> 

Я изменил его:

<form method="post"> 

Таким образом, посты страницы к себе. Затем он может регистрировать переменные сеанса и перенаправлять пользователя на session.php.

Редактировать: также вы забыли =method"post".

+0

Спасибо. Я пробовал это, но заголовок ('Location: session.php'); , похоже, не работает. – Ben

+0

Отредактировав мой ответ, вы написали сообщение 'method 'вместо' method = "post" '. :) – TaZ

+0

Неправильное сообщение. Вы тоже правы! – Ben