2015-05-23 42 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。现在运行代码,我希望它能工作。请享用。

相关问题