3

有没有办法在用户登录时在我网站的所有页面上显示注销按钮,如果有人未登录,则不会出现?我假设某种 php 可以解决问题,但我不确定。我对这一切有点陌生,所以如果你能给出详细的解释,将不胜感激!

先感谢您!

4

6 回答 6

3
  • 创建 $_SESSION['user'] 并在用户登录时填写。

  • 创建一个您将包含在所有页面中的 php 页面,在此页面中检查是否设置了会话变量 $_SESSION['user'],并根据此条件显示链接

     if(isset($_SESSION["user"])){ /*your logout button*/ } else { /*your login button*/ } 
    
于 2013-03-26T15:30:51.227 回答
2

您可以通过启动新会话并设置会话变量来做到这一点。

在登录文件中这样做

<?php 
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST' ) {

$username = trim(htmlentities(mysql_real_escape_string($_POST['username'])));
$password = trim(htmlentities(mysql_real_escape_string($_POST['password'])));
if (!empty($username) && !empty($password)) {
    $_SESSION['username'] = $username;
    echo "<br/> welcome ", $username;
    echo "<br/><a href='logout.php'>Logout</a>";

     } else {
    echo "Please enter correct username or password";
     }   
} else {
echo "Go to login page</br>";
echo "<a href='login.php'>Login</a>";
}

并且每个页面都检查该会话变量

<?php 
session_start();
if(isset($_SESSION['username'])){
    echo "you logged in as </br>", $_SESSION['username'];
    echo "<br/><a href='logout.php'>logout</a>";
}else{
//your page stuff
}

并注销,销毁会话

<?php 
session_start();
if (isset($_SESSION['username'])) {
   session_destroy();
   echo "<br> you are logged out successufuly!";
} 
   echo "<br/><a href='login.php'>login</a>";
 ?>

//不要忘记阅读有关会话和 cookie 的更多信息。

于 2013-03-26T15:35:12.690 回答
0

这是一个例子,还有其他方法:

当用户登录时,创建一个$_SESSION['user']变量。

当您想显示注销按钮时,请检查是否设置了会话变量isset($_SESSION['user'])

于 2013-03-26T15:17:47.097 回答
0

像这样:

if (isset($_SESSION['uid']))
{
      if (!empty($_SESSION['uid']))
      {
        echo "<input type='button' value='Logout' onclick='logout_function();' />";
      }
}

萨卢多斯 xD

于 2013-03-26T15:18:18.060 回答
0

像这样的东西应该可以解决问题。

if(!empty($_SESSION["user"]))
{
/*
* logout button
*/
}
else
{
/*
* login code
*/
}
于 2013-03-26T15:18:26.107 回答
0

您是否研究过会话管理? http://www.php.net/manual/en/book.session.php

于 2013-03-26T15:16:51.477 回答