2015-05-23 43 views
0

對於PHP會話來說是新手,並在傳遞會話變量時面臨問題。無法弄清楚此代碼中的問題。 第1頁無法使用PHP將會話變量傳遞到另一個頁面

<html> 
<head><title>My First PHP</title></head> 
<body> 
<FORM NAME ="form1" METHOD ="POST" ACTION = "main1.php"> 
<table > 
<tr><td>First Name: <INPUT TYPE = "TEXT" VALUE ="" NAME = "first"></td></tr> 
<tr><td>Last Name: <INPUT TYPE = "TEXT" VALUE ="" NAME = "last"></td></tr> 


<tr><td><INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Click Here"></td></tr></table> 
</FORM> 
<?php 
session_start(); 


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

$firstname = $_POST['first']; 
$lastname = $_POST['last']; 
$firstname=ucwords($firstname); 

$_SESSION["firstname"] = $_POST['first']; 
$_SESSION["lastname"] = $_POST['last']; 

echo $_SESSION["firstname"] ."-" . $_SESSION["lastname"] ; 

echo "Hello, ".$firstname. " " .$lastname ."!" . "<br>"; 
} 
?> 


</body> 
</html> 

頁2

<html> 
<head><title>My second PHP</title></head> 
<body> 

<?php 
session_start(); 
$first = $_POST["first"]; 
$last = $_POST["last"]; 
$first = ucwords($first); 
$last = ucwords($last); 
$firstname = $_SESSION["firstname"]; 
echo $firstname; 
?> 



<FORM NAME ="form1" METHOD ="POST" ACTION = "main1.php"> 
<table align="center" > 
<tr><td>First Name: <INPUT TYPE = "TEXT" NAME = "first" VALUE="<?php echo htmlentities($first); ?>"/></td></tr> 
<tr><td>Last Name: <INPUT TYPE = "TEXT" VALUE ="<?php echo htmlentities($last); ?>" NAME = "last"></td></tr>  
</table> 

</FORM> 


</body> 
</html> 

我在這裏無法訪問使用會話的$名字。有人可以幫助解決問題嗎?

未定義指數:名字是個error.Have檢查對此很多職位,但仍繼續發生錯誤。

+0

session_start();在啓動任何html之前應該在最頂端。您不需要手動傳遞會話,它會自動進行。 – Samir

回答

0

一個會話變量可以在整個網站中使用,任何頁面

。但是,這會是你的POST錯誤?嘗試簡單的會話變量設置爲一個字符串,看他們是否在其他網頁檢索

1

看,從您的代碼,發送數據後您的會話變量被初始化時,我點擊提交按鈕後,意味着你的第一頁。但是當你發送它時,它會進入下一頁,而不初始化會話變量。這意味着會話變量未被初始化。因此,您可以創建另一個鏈接在這兩個頁面之間的頁面。創建另一個名爲linkingPage.php的頁面。更改第一頁行動linkingPage.php和削減這些線路的PHP代碼並將其粘貼到新創建的頁面

<?php 
session_start(); 
if(isset($_POST['Submit1'])){ 

    $firstname = $_POST['first']; 
    $lastname = $_POST['last']; 
    $firstname=ucwords($firstname); 

    $_SESSION["firstname"] = $_POST['first']; 
    $_SESSION["lastname"] = $_POST['last']; 

    //echo $_SESSION["firstname"] ."-" . $_SESSION["lastname"] ; 

    //echo "Hello, ".$firstname. " " .$lastname ."!" . "<br>"; 

    header('Location:main1.php'); 
} 
?> 

最後兩行被註釋掉了,因爲現在它的unnesseceray。現在運行代碼,我希望它能工作。請享用。

相關問題