powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Сессии
10 сообщений из 10, страница 1 из 1
(PHP) Сессии
    #33451424
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть 1.php содержимое примерно следующее:

unset($logged_user);
session_start();
session_register($logged_user);
//если переменной $logged_user нет, то уходим и забываем о проблеммах..
if (!isset($logged_user))
{
header("Location: index.php");
exit();
}
//если все таки есть, то проверяем передана ли в адр. строку $i
if (isset($i))
{
//далее собственно проблемма... подключаем файл..
include('2.php');
}
файл подключаеться, проблема в том, чтобы сделать содержимое файла 2.php таковым, чтобы там проверялось наличие переменной $logged_user в сессии. (для того, чтобы нельзя было запустить этот файл отдельно)

Подскажите, пожалуйста, как это организовать? Или может быть знаете где можно об этом почитать?
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451440
Geen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if (session_register($logged_user); !="")
{ тут уж творите, что хотите}
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451504
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы нельзя было запустить файл отдельно, обычно в 1.php объявляется константа, а в 2.php она проверяется на наличие. Так как константу нельзя переопределить через GET, POST, COOKIE и т.д. (как простые переменные при register_globals) - этот метод однозначно определяет, что скрипт был подключен из предыдущего. Заодно можно в случае если пользователь откроет 2.php без 1.php - банить его и уведомлять себя о "попытке взлома".
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451533
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем глубокий смысл совокупности строк?
Код: plaintext
1.
2.
3.
unset($logged_user);
session_start();
session_register($logged_user);
Далее
Код: plaintext
!isset($logged_user)
>файл подключаеться
Конечно подключается, причем, всегда подключается..
идите в ман и прочтите, как работает функция isset().

>для того, чтобы нельзя было запустить этот файл отдельно
вариантов сделать такое есть несоклько. если программно, то просто проверяйте существование нужной переменной из 1.php

2 Geen
Код: plaintext
if (session_register($logged_user); !="")
В чем глубокий смысл этого выражения???? Подсказка - это выражение всегда будет true.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451543
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geenif (session_register($logged_user); !="")
{ тут уж творите, что хотите}

Во-первых, если я не ошибаюсь, session_register возвращает bool, во вторых она вернет в данном случае true даже если $logged_user не передан (я проверял).
Во-вторых при такой проверке можно передать переменную $logged_user в 2.php просто написав в командной строке 2.php?session_register=value
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451557
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to 4m@t!c:

Извините, я забыл один else... Файл подключаеться только в том случае, если существует и $logged_user.
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451576
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шогалобычно в 1.php объявляется константа, а в 2.php она проверяется на наличие.

Спасибо. Это одна из проверок. Она тоже есть в скрипте, но, к сожалению, это может защитить только от того, кто не знает имя этой константы..:(
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451598
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4m@t!cвариантов сделать такое есть несоклько. если программно, то просто проверяйте существование нужной переменной из 1.php

В 1.php я могу проверять что угодно, но что запретит пользователю просто вызвать 2.php отдельно?
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451622
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, за то что приняли участие в обсуждении!

2 Шогал:
Особое спасибо за совет. Я что-то натупил. :( Даже если пользователь и будет знать имя константы, то он не сможет ее передать..
...
Рейтинг: 0 / 0
(PHP) Сессии
    #33451635
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Извините, я забыл один else...
>Файл подключаеться только в том случае, если существует и $logged_user.
О чем вы тогда вообще разговариваем, если вы задаете вопросы по скрипту, с которым не работаете???? проблема скопировать скрипт из одного окна в другое???

>но что запретит пользователю просто вызвать 2.php отдельно?
механизм вам описал господин Шогал
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]