У меня есть каталог папок, и я хочу, чтобы пользователь с именем «x» whos-файлы были доступны следующим образом: reports/x/2015/04/от изменения x до y и просмотра всех этих слов в y. У меня есть сеансы работы, так что вам нужно войти в систему, чтобы просмотреть любые папки, но если вы вошли в систему как x, вы можете увидеть папку y, изменив URL-адрес. вот мой index.php.Как предотвратить возможность изменения URL-адреса и просмотра других папок пользователей
<?php
session_start();
if(!isset($_SESSION['username'])){
header("Location:../../../../login/login.php");
}
require_once('../../../config.php');
require_once('../../../boilerplate.php');
global $smarty;
$smarty->display('general-report.tpl');
причина это так, чтобы сохранить отчеты на техническое обслуживание каждого месяца. л. У меня есть это сейчас: Php session_start(); require_once ('../../../ config.php'); require_once ('../../../ boilerplate.php'); глобальный $ smarty; if (! Isset ($ _ SESSION ['username'])) { header ("Местоположение: ../../../../ login/login.php"); выход; } if ($ username == $ directory) { $ smarty-> display ('general-report.tpl'); } else { \t echo "no page for you"; } это все еще не работает – user4888750
В приведенном выше примере директория $ на самом деле не установлена, поэтому она никогда не будет соответствовать. Вам нужно выяснить, в какой каталог пользователь пытается получить доступ. Посмотрите на '$ _SERVER ['REQUEST_URI']'. Затем вы можете «взорваться» на '/' и выяснить, что такое папка.Затем сравните его с именем пользователя. Вы также можете сделать 'strtolower' на имя пользователя, если в нем есть заглавные буквы. – Scheda
Я думал, используя имя каталога в сеансе, а затем проверяю, соответствует ли это тому, что у нас есть в базе данных. любые идеи, как написать это? – user4888750