如何使用php显示会话信息

时间:2015-07-23 12:16:40

标签: php html session

我正在尝试显示会话信息,例如用户名,当用户通过登录页面登录时,会话必须捕获用户输入的用户名并应显示在页面中。下面我尝试了php脚本,但它没有回应用户名,请在脚本中检查错误,提前谢谢。

<?php

    session_start();

    $_SESSION['test']= $_POST['myusername'];
    $name= $_SESSION['test'];
echo $name;
?>   

 <form action="login.php" method="post">
<p>Username</p> 
<input name="myusername" type="text" id="myusername" required>
<p>Password</p>
<input name="mypassword" type="password" id="mypassword"required></br>
<button><img src="http://icons.iconarchive.com/icons/webiconset/application/32/Register-icon.png"  /></button>
</form>

login.php

我得到的输出是,只是它转到下一页而不显示用户名。

3 个答案:

答案 0 :(得分:2)

在之后调用session_start()之前,您无法访问会话数据。所以你的第一个if语句是不必要的,也是有问题的,因为你无法检查会话变量是否存在,直到之后你开始你的会话。另外,请确保在您希望使用会话的每个页面的顶部调用session_start()

<?php
session_start();

$_SESSION['test']= $_POST['myusername'];

答案 1 :(得分:0)

您必须先修改会话开始与否。您可以使用此代码版本 PHP&gt; = 5.4.0 进行检查: -

if (session_status() !== PHP_SESSION_ACTIVE) {session_start();}

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

或通过此代码版本 PHP&lt; 5.4.0 : -

if (session_id() === "") { session_start(); }

然后,您只需将它们打印为数组即可查看所有会话存储的值。

  echo "<pre>";  
print_r($_SESSION);

然后您可以像这样为会话分配你的帖子变量值。

    $_SESSION['test']= $_POST['myusername']; 
echo $_SESSION['test'];

答案 2 :(得分:0)

您在发布前设置会话。请使用以下代码。

login.php

<?php
  if(isset($_POST['myusername']))
  {
    // your code
    session_start();
    $_SESSION['test']= $_POST['myusername'];
   }
 ?>   

 <form action="login.php" method="post">
 <p>Username</p> 
 <input name="myusername" type="text" id="myusername" required>
 <p>Password</p>
 <input name="mypassword" type="password" id="mypassword"required></br>
 <button><img src="http://icons.iconarchive.com/icons/webiconset/application/32/Register-icon.png"  /></button>
 </form>

newpage.php

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