Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php:注销按钮赢得';不要更改为登录_Php_Html_Session - Fatal编程技术网

php:注销按钮赢得';不要更改为登录

php:注销按钮赢得';不要更改为登录,php,html,session,Php,Html,Session,所以我试图设置标题,如果用户已经登录,则登录链接将更改为注销,如果用户已经注销,则它将从注销更改为登录。我可以将登录改为注销,但即使用户注销,链接仍然保持在“注销”状态,而不是改回登录。以下是我的php标题部分,它应该将登录更改为注销,并将注销更改为登录:- <?php if(isset($_SESSION['username'])): ?> <a href="" class="w3-bar-item w3-button">Login</a> <?php

所以我试图设置标题,如果用户已经登录,则登录链接将更改为注销,如果用户已经注销,则它将从注销更改为登录。我可以将登录改为注销,但即使用户注销,链接仍然保持在“注销”状态,而不是改回登录。以下是我的php标题部分,它应该将登录更改为注销,并将注销更改为登录:-

<?php if(isset($_SESSION['username'])): ?>
<a href="" class="w3-bar-item w3-button">Login</a>
<?php else: ?>
<a href="" class="w3-bar-item w3-button">Log out</a>
<?php endif; ?>

根据您的代码,登录/注销按钮的条件不正确,应为:

<?php if ( ! isset($_SESSION['username'] ) ): ?>
<a href="" class="w3-bar-item w3-button">Login</a>
<?php else: ?>
<a href="" class="w3-bar-item w3-button">Log out</a>
<?php endif; ?>

另外,我注意到您的脚本没有包含任何身份验证和验证,以确认用户是否真实存在于用户的数据库表中。任何人都可以设置用户名会话并轻松绕过您的脚本。当您在实时服务器上时,这一点非常重要。

条件是错误

  <?php
    if(!isset($_SESSION['username'])){
      echo `<a href="" class="w3-bar-item w3-button">Login</a>`;
    }else{
     echo `<a href="" class="w3-bar-item w3-button">Log out</a>`;
    }
   ?>


而会话从未启动会话_START();替换为会话_start()

var\u dump($\u SESSION)
并查看结果会话未激活,然后在脚本顶部调用
SESSION\u start()
并检查用户名会话是否存在:
var\u dump(isset($\u SESSION['username'))
因此每当我登录时,var\u dump(isset($\u SESSION['username'))返回bool(true)无论何时我注销,它都会返回bool(false),但登录状态不会改变这只是使整个按钮从屏幕上消失:/
  <?php
    if(!isset($_SESSION['username'])){
      echo `<a href="" class="w3-bar-item w3-button">Login</a>`;
    }else{
     echo `<a href="" class="w3-bar-item w3-button">Log out</a>`;
    }
   ?>