Php 如何将文本和布尔条件与逻辑运算符进行比较

Php 如何将文本和布尔条件与逻辑运算符进行比较,php,session,comparison,operators,conditional-statements,Php,Session,Comparison,Operators,Conditional Statements,我有一个包含菜单的头文件(Header.php)。他几乎在该网站的每一页上都有人打电话给他 我想检查用户是否登录以显示整个页面,因此在文件(header.php)的末尾,我添加了以下条件: if ((!isset($_SESSION["email"]) && !isset($_SESSION["password"])) or $title != "Connexion" or $title != "403") { header("Location: 403

我有一个包含菜单的头文件(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");
  ?>

  .....

.....
但是我的情况不好,你能纠正我的情况吗


谢谢你

检查你身体状况的最后一部分:

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

你需要像这样的东西:

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

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

您不应在会话中存储密码。这不起作用,因为我只想让用户查看登录页面($title=“Connexion”)或错误页面($title=“403”),页面中只有一个标题,在您的条件下,标题必须是Connexion和403,感谢you@Rocstar我的错误是,它们都必须是
&&
当然:当没有会话时,您不在登录页面上,您不在403页面上,然后重定向。是的!我没有把这个问题当成应该解决的问题!谢谢你,工作很好