Эта часть не будет работать так, как вы (вероятно) хотите:
$_SERVER['REQUEST_URI'] != "login" || "thankyou" || "confirm"
Во-первых, REQUEST_URI
никогда не будет равно ни одному из этих значений - у него будет хотя бы дополнительная /
. Если ваш скрипт называется test.php
, REQUEST_URI будет содержать не менее /test.php
(см. Ниже, что еще он может содержать). Взгляните на переменную REQUEST_URI
, чтобы увидеть, как она структурирована.
Кроме того, REQUEST_URI
здесь коварен: он будет содержать любые дополнительные строки запроса, поэтому можно будет спутать сравнение, добавив произвольный ?name=value
к URL.
Сделайте phpinfo()
, чтобы найти что-то более подходящее, чем REQUEST_URI, например SCRIPT_NAME
.
Во-вторых, выполняемые вами операции «или» будут применены к значениям до того, как будет выполнено сравнение.
Вы, вероятно, хотите что-то вроде этого:
!in_array($_SERVER['SCRIPT_NAME'],
array("/login.php", "/thankyou.php", "/confirm.php"))