php - как определить запуск из корня папки

12
dspu
На сайте с 10.05.2006
Offline
268
1296

есть папочка на сайте, к примеру /dir1/

как запустить скрипт из index.php в этой папке только в том случае, если в url /site.ru/dir1/ а не /site.ru/dir1/index.php?tr=23 какой-нибудь

B
На сайте с 14.07.2010
Offline
36
#1

посмотреть в массиве $_SERVER request uri

AlikZP
На сайте с 22.11.2009
Offline
107
#2

$_SERVER['REQUEST_URI'] нельзя посмотреть и если что-то не то, то die() ?

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
dspu
На сайте с 10.05.2006
Offline
268
#3

$_SERVER['REQUEST_URI'] его надо как-то паттерном обработать на предмет того, что после /dir1/ что-то есть

вопрос как раз в паттерне

ydn
На сайте с 12.05.2010
Offline
12
ydn
#4

Самое простое что приходит на ум, это проверить $_SERVER['REQUEST_URI']

Вёрстка xHTML ● WordPress > Вёрстка, программирование, настройка, консультации (/ru/forum/526726) Вёрстка на халяву (/ru/forum/569543) ICQ 853588 | Написать мне личное сообщение ()
AlikZP
На сайте с 22.11.2009
Offline
107
#5
dspu:
$_SERVER['REQUEST_URI'] его надо как-то паттерном обработать на предмет того, что после /dir1/ что-то есть
вопрос как раз в паттерне

А если

$data = explode("?", $_SERVER['REQUEST_URI']);

if (count($data) > 1) { die('В строке есть вопросительный знак и что-то после него'); }
dspu
На сайте с 10.05.2006
Offline
268
#6

пока тупая конструкция работает:

if ($_SERVER['REQUEST_URI']=='/dir1/') трампампам;

хотелось бы универсальную конструкцию без предварительного изучения $_SERVER['REQUEST_URI']

dspu добавил 09.08.2010 в 14:30

AlikZP:
А если
$data = explode("?", $_SERVER['REQUEST_URI']);
if (count($data) > 1) { die('В строке есть вопросительный знак и что-то после него'); }

ну а если там файл page.php запустится без параметров?

dspu добавил 09.08.2010 в 14:31

т.е. такой скрипт, который проверяет наличие любых символов после второго слеша в $_SERVER['REQUEST_URI']

AlikZP
На сайте с 22.11.2009
Offline
107
#7
dspu:
т.е. такой скрипт, который проверяет наличие любых символов после второго слеша в $_SERVER['REQUEST_URI']

нет, такая конструкция проверяет наличие знака вопроса в строке.

Если нужно проверять что после последнего слеша, то попробуйте так:

$data = end(explode('/', $_SERVER['REQUEST_URI']));

То есть если в строке site.ru/dir1/page.php, то в $data будет page.php

Если в строке site.ru/dir1/page.php?goto=1, то в $data будет page.php?goto=1

Проверить потом легко с помощью строковых функций, есть ли там index.php или что-то другое

T
На сайте с 13.01.2009
Offline
50
#8
AlikZP:
А если
$data = explode("?", $_SERVER['REQUEST_URI']);

if (count($data) > 1) { die('В строке есть вопросительный знак и что-то после него'); }

Есть strpos и mb_strpos

X3
На сайте с 30.09.2009
Offline
6
#9

может

if ($_SERVER['REQUEST_URI'] === dirname($_SERVER['REQUEST_URI'])) трампампам;

?

Alipapa
На сайте с 01.02.2008
Offline
234
#10

Нужно проверять массив $_GET. Если он пуст, значит хвоста нет.

Биржа фриланса - простая и удобная (http://kwork.ru/ref/2541)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий