У меня есть файл logout.php
, который находится в корневом каталоге и выглядит так
<?php
if(isset($_POST['logout'])){
session_destroy();
header('location: ../index.php');
}
?>
<form method="POST">
<button name="logout" class="logout">Logout</button>
</form>
Эта кнопка включена в header.php
, а header.php
- это то, что на самом деле вызывает проблему, проблема выглядит так:
Есть два заголовочных файла, которые находятся в двух разных каталогах, один в корневой папке, а другой в подпапке /users/
, и если вы видели код, вы уже можете предполагать, что кнопка выхода из системы выполняет свою функцию правильно каждый раз, когда вы находитесь в каталоге /users/
, например. localhost/rootdirectory/users/dashboard.php
но каждый раз, когда вы посещаете корневую папку и пытаетесь выйти из нее, она перенаправляет вас на один каталог вверх, ведя вас прямо на страницу индекса WAMP (в моем случае).
Теперь вы должны задаться вопросом, зачем мне использовать два разных заголовка, поэтому вот объяснение этому:
Содержимое внутри header.php
одинаково в обоих файлах, но у меня есть его дубликат, потому что я нашел его единственным решением той же проблемы, что и у меня, когда я создавал header.php
или точнее сразу после того, как я создал подпапку /users/
и попытался включить /rootfolder/header.php
в /rootfolder/users/index.php
.
То, что произошло здесь, похоже на то, что происходит сейчас с моей кнопкой выхода из системы, и основная причина, по которой я задаю этот вопрос, заключается в том, что я не могу создавать дубликаты каждый раз, когда сталкиваюсь с проблемой такого типа.
Когда я попытался включить /rootfolder/header.php
в /rootfolder/users/index.php
, я потерял связь с каждым файлом, связанным внутри заголовка, включая style.css
Прямо сейчас мы находимся в /rootfolder/users/index.php
<?php
include '../header.php';
include '../footer.php';
?>
и вот как /rootfolder/header.php
выглядит
<?php
session_start();
//we link the connection file
include "pagesetup/config.php";
//we populate the database with tables and default data
include "pagesetup/createtables.php";
//we store the page title inside of a variable
$get_title = mysqli_query($mysqli, "SELECT title FROM pageinfo");
while($row = $get_title->fetch_assoc()){
$page_title = $row['title'];
}
//we unset the login and register sessions which are used to display the outcome
//of the login/register attempt
unset($_SESSION['login']);
unset($_SESSION['register']);
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="js/javascript.js"></script>
<title>
<?php echo $page_title;?>
</title>
</head...
В этой ситуации моя страница указателя выглядит следующим образом, и у меня нет доступа к любому другому файлу, связанному с ним (включая самый важный config.php
)
![enter image description here](https://i.stack.imgur.com/vJG0I.png)
И единственный способ применить файл style.css
к /rootfolder/users/index.php
- это скопировать header.php
внутри /rootfolder/users/
и затем изменить его пути следующим образом
<?php
session_start();
//log in protection
if(!isset($_SESSION['loggedin'])){
header('location:../index.php');
}
//we link the connection file
include "../pagesetup/config.php";
//we populate the database with tables and default data
include "../pagesetup/createtables.php";
//we store the page title inside of a variable
$get_title = mysqli_query($mysqli, "SELECT title FROM pageinfo");
while($row = $get_title->fetch_assoc()){
$page_title = $row['title'];
}
//we unset the login and register sessions which are used to display the outcome
//of the login/register attempt
unset($_SESSION['login']);
unset($_SESSION['register']);
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/style.css" />
<script type="text/javascript" src="../js/javascript.js"></script>
<title>
<?php echo $page_title;?>
</title>
</head...
и затем конечно изменить путь в /rootfolder/users/index.php
тоже
<?php
include 'header.php';
include '../footer.php';
?>
Этот вопрос может быть немного не по теме, но я не смог найти правильный способ его задать, поэтому, если вы понимаете мою проблему и имеете что-то, что поможет мне научиться работать с каталогами, я был бы более чем рад услышать это.
Мир!