Я пытаюсь использовать оператор if / else в PHP. В настоящее время я пытаюсь сделать, если $_SESSION['usr'];
равно текущему каталогу ($dir_auth2
) переменная, к которой пользователь пытается получить доступ. Затем они могут получить доступ к каталогу или index.php у меня в нем. Остальное, если $_SESSION['usr'];
является !=
в текущий каталог, затем перенаправьте их на домашнюю страницу. В настоящее время, когда пользователь вводит чей-то каталог, это не значит, что он может получить к нему доступ.
<?php
session_name('tzLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
//This if statement below is the problem
if($_SESSION['usr'] == $dir_auth1) {
//This demo.php is the home page
header("Location: demo.php");
} else {
echo "You are logged in as " . $dir_auth1;
}$dir = getcwd();
$dir1 = str_replace('/home/pophub/public_html/', '/', $dir);$dir_auth = getcwd();
$dir_auth1 = str_replace('/home/pophub/public_html/gallry/', '', $dir_auth);
echo $_SESSION['usr'];
echo $dir_auth1;
$dir_user = getcwd();
$dir_user1 = str_replace('/home/pophub/public_html/gallry', '', $dir_user);?>
Либо вы не опубликовали весь сценарий, либо не определили $dir_auth2
в любом месте. Что плохо, так как вы полагаетесь на его ценность в
if($_SESSION['usr'] == $dir_auth2) {
Кроме того, вы должны использовать die()
после звонка header()
header("Location: demo.php");
die();
Я думаю, это то, что вы ищете.
Вам нужно определить переменную $dir_auth1
прежде чем пытаться использовать его в операторе if / else.
Также я думаю, что вы хотите !=
вместо ==
<?php
session_name('tzLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
$dir = getcwd();
$dir1 = str_replace('/home/pophub/public_html/', '/', $dir);
$dir_auth = getcwd();
$dir_auth1 = str_replace('/home/pophub/public_html/gallry/', '', $dir_auth);
$dir_user = getcwd();
$dir_user1 = str_replace('/home/pophub/public_html/gallry', '', $dir_user);if($_SESSION['usr'] != $dir_auth1) {
header("Location: demo.php");
} else {
echo "You are logged in as " . $dir_auth1;
}
?>
Также вы можете объединить все ваши строковые функции в одну, например, так:
$dir_auth1 = str_replace(array("/home/pophub/public_html/","/home/pophub/public_html/gallry/"),"",getcwd());