2012-06-30 2 views
1

Я проект, с различными подразделами, которые используют файл functions.php, расположенный в корневой папке проектаСохранить текущий путь к файлу переменной не работает

include "../functions.php"; 

Дело в том, что мне нужно сохранить текущий путь subdir, так что перезагрузите страницу, он перенаправит меня в папку, которую я раньше, а не корневую папку.

header('Location: '.$currFolder.'index.php'); 

Чтобы сделать это, я (стараюсь) хранить его в переменной, вызвав функцию в каждом подкаталог файле index.php

$currFolder = dirname($_SERVER['PHP_SELF']); // returns "/root/subdir" 

Но по какой-то причине переменная остается пустой, так что header продолжает перенаправлять меня на root ... Что я делаю неправильно?

ответ

1

Вам нужно сохранить свое значение в сеансе или в файле cookie. Попробуйте это:

$_SESSION['currFolder'] = dirname($_SERVER['PHP_SELF']); 

Затем вы можете получить его с помощью:

$currFolder = $_SESSION['currFolder']; 

Конечно убедитесь, что вы назвали session_start(), прежде чем пытаться использовать переменную $ _SESSION.

+0

Большое вам спасибо за быстрый ответ! Не могли бы вы объяснить мне, почему мой код не работает, пожалуйста? – Dane411

+1

@ Dane411, если вы задаете переменную перед перенаправлением с заголовком Location, она потеряет все предыдущие настройки. Заголовок заголовка заставляет новую страницу полностью перезагружать, а не включать. Таким образом, любые переменные, установленные на предыдущей странице, исчезают после перенаправления. – davidethell

+0

Просто в теме темы, чтобы иметь родительский сценарий папки, чтобы поделиться им, поэтому изменения должны выполняться только один раз и, таким образом, избегать избыточности. Но присваивание работает только в том случае, если я добавлю его в subdirs index.php, как если бы я добавлял его во включенный файл, он вместо этого получает верхнюю папку (ту, которая содержит этот скрипт) ... Есть ли способ ее достижения, поэтому это назначение может быть установлено во включенном файле, например, в функции или что-то еще? – Dane411