如何在PHP中使用带变量的会话

时间:2015-11-16 07:06:14

标签: php

我想使用$_SESSION中的php来显示数据库中的用户名。

在我的项目中有一个表存储了登录和注销的所有信息,并且从该表中想要在任何php页面中显示用户名

1 个答案:

答案 0 :(得分:1)

试试这个......

通过调用session_start()函数可以轻松启动PHP会话。该函数首先检查会话是否已经启动,如果没有启动会启动会话。建议将对session_start()的调用放在页面的开头。

会话变量存储在名为$ _SESSION []的关联数组中。可以在会话的生命周期内访问这些变量。

以下示例启动一个会话,然后注册一个名为counter的变量,每次在会话期间访问该页面时该变量都会递增。

使用isset()函数检查会话变量是否已设置。

将此代码放在test.php文件中并多次加载此文件以查看结果 -

<?php
   session_start();

   if( isset( $_SESSION['counter'] ) )
   {
      $_SESSION['counter'] += 1;
   }
   else
   {
      $_SESSION['counter'] = 1;
   }
   $msg = "You have visited this page ".  $_SESSION['counter'];
   $msg .= "in this session.";
?>
<html>

   <head>
      <title>Setting up a PHP session</title>
   </head>

   <body>
      <?php  echo ( $msg ); ?>
   </body>

</html>

销毁PHP会话

session_destroy()函数可以销毁PHP会话。此函数不需要任何参数,单个调用可以销毁所有会话变量。如果要销毁单个会话变量,则可以使用unset()函数取消设置会话变量。

以下是取消设置单个变量的示例 -

<?php
   unset($_SESSION['counter']);
?>

这是将销毁所有会话变量的调用 -

<?php
   session_destroy();
?>

启用自动会话 如果您可以在php.ini文件中将session.auto_start变量设置为1,则不需要调用start_session()函数来在用户访问您的站点时启动会话。

没有Cookie的会话 可能存在用户不允许在其计算机上存储cookie的情况。因此,还有另一种方法可以将会话ID发送到浏览器。

或者,您可以使用会话开始时定义的常量SID。如果客户端未发送适当的会话cookie,则其形式为session_name = session_id。否则,它会扩展为空字符串。因此,您可以无条件地将其嵌入到URL中。

以下示例演示如何注册变量,以及如何使用SID正确链接到另一个页面。

<?php
   session_start();

   if (isset($_SESSION['counter'])) {
      $_SESSION['counter'] = 1;
   }
   else {
      $_SESSION['counter']++;
   }

   $msg = "You have visited this page ".  $_SESSION['counter'];
   $msg .= "in this session.";

   echo ( $msg );
?>
<p>
   To continue  click following link <br />

   <a  href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">
</p>

价:http://www.tutorialspoint.com/php/php_sessions.htm