2012-05-12 31 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"> 

您需要方法和「後」之間的「=」符號。

改變這一點,會給你在session.php中的「t」。

+0

Briliant!那樣做了。非常感謝。 – Ben

1

你張貼的形式session.php

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

我將其更改爲:

<form method="post"> 

這樣一來,網頁發送到自身。然後它可以註冊會話變量並將用戶重定向到session.php

編輯:另外,你忘了=登錄method"post"

+0

謝謝。我試過了,但是 header('Location:session.php'); 似乎不起作用。 – Ben

+0

編輯我的答案,你寫'方法「後」'而不是'method =「post」'。 :) – TaZ

+0

誤讀您的帖子。你也是對的! – Ben