【问题标题】:How I can compare text and boolean condition with logical operators如何将文本和布尔条件与逻辑运算符进行比较
【发布时间】:2017-07-29 02:09:08
【问题描述】:

我有一个包含菜单 (header.php) 的头文件。几乎网站的每个页面都会调用他。

我想检查用户是否登录以显示整个页面,所以在文件末尾(header.php)我添加了这个条件:

if ((!isset($_SESSION["email"]) && !isset($_SESSION["password"])) or $title != "Connexion" or $title != "403") 
    { 
       header("Location: 403.php"); 
    }

(如果用户没有会话或页面标题与页面连接或页面错误的页面标题不同,则用户被重定向,否则继续

我只想让用户看到登录页面($title = "Connexion")或错误页面($title = "403"),页面中只有一个标题)

事实上,如果用户没有会话,我希望它连接:login.php

<?php
  $title = 'Connexion'; 
  include ("/layout/header.php");
  ?>

  .....

但是我的条件不行,你能纠正我的条件吗?

谢谢

【问题讨论】:

  • 您不应将密码存储在会话中。

标签: php session comparison operators conditional-statements


【解决方案1】:

检查您的状况的最后一部分:

... or $title != "Connexion" or $title != "403"

对于任何$title,这始终是正确的,因此完整条件将始终匹配,并且您将进入一个永无止境的重定向循环。

你需要这样的东西:

if ( !isset($_SESSION["email"]) && $title !== "Connexion" && $title !== "403" )

请注意,您不应将密码存储在会话中。

【讨论】:

  • 这行不通,因为我只想让用户看到登录页面($title = "Connexion")或错误页面($title = "403"),只有一个页面中的标题,根据您的情况,标题必须是连接和 403,谢谢
  • @Rocstar 我的错,它们都必须是&amp;&amp; 当然:当没有会话并且您不在登录页面并且您不在403页面上时,然后重定向。
  • 是的!我没有把问题当成它应该的样子!谢谢,效果很好
猜你喜欢
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多