|
|
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть 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 в сессии. (для того, чтобы нельзя было запустить этот файл отдельно) Подскажите, пожалуйста, как это организовать? Или может быть знаете где можно об этом почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 11:49 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
if (session_register($logged_user); !="") { тут уж творите, что хотите} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 11:52 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
Чтобы нельзя было запустить файл отдельно, обычно в 1.php объявляется константа, а в 2.php она проверяется на наличие. Так как константу нельзя переопределить через GET, POST, COOKIE и т.д. (как простые переменные при register_globals) - этот метод однозначно определяет, что скрипт был подключен из предыдущего. Заодно можно в случае если пользователь откроет 2.php без 1.php - банить его и уведомлять себя о "попытке взлома". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:03 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
А в чем глубокий смысл совокупности строк? Код: plaintext 1. 2. 3. Код: plaintext Конечно подключается, причем, всегда подключается.. идите в ман и прочтите, как работает функция isset(). >для того, чтобы нельзя было запустить этот файл отдельно вариантов сделать такое есть несоклько. если программно, то просто проверяйте существование нужной переменной из 1.php 2 Geen Код: plaintext ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:12 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
Geenif (session_register($logged_user); !="") { тут уж творите, что хотите} Во-первых, если я не ошибаюсь, session_register возвращает bool, во вторых она вернет в данном случае true даже если $logged_user не передан (я проверял). Во-вторых при такой проверке можно передать переменную $logged_user в 2.php просто написав в командной строке 2.php?session_register=value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:12 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
to 4m@t!c: Извините, я забыл один else... Файл подключаеться только в том случае, если существует и $logged_user. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:16 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
Шогалобычно в 1.php объявляется константа, а в 2.php она проверяется на наличие. Спасибо. Это одна из проверок. Она тоже есть в скрипте, но, к сожалению, это может защитить только от того, кто не знает имя этой константы..:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:18 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
4m@t!cвариантов сделать такое есть несоклько. если программно, то просто проверяйте существование нужной переменной из 1.php В 1.php я могу проверять что угодно, но что запретит пользователю просто вызвать 2.php отдельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:22 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, за то что приняли участие в обсуждении! 2 Шогал: Особое спасибо за совет. Я что-то натупил. :( Даже если пользователь и будет знать имя константы, то он не сможет ее передать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:27 |
|
||
|
(PHP) Сессии
|
|||
|---|---|---|---|
|
#18+
>Извините, я забыл один else... >Файл подключаеться только в том случае, если существует и $logged_user. О чем вы тогда вообще разговариваем, если вы задаете вопросы по скрипту, с которым не работаете???? проблема скопировать скрипт из одного окна в другое??? >но что запретит пользователю просто вызвать 2.php отдельно? механизм вам описал господин Шогал ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 12:29 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33451635&tid=1477054]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 537ms |

| 0 / 0 |
