powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP - видимость данных изо всех скриптов сайта
31 сообщений из 31, показаны все 2 страниц
PHP - видимость данных изо всех скриптов сайта
    #38191882
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем, проблема в том, что я не знаю, как сделать так, чтобы в index.php устанавливалось значение некоторых нужных переменных, которые можно использовать потом, в других скриптах.

Например. index.php у меня представляет собой форму авторизации, т.е. без авторизации сайт ничего не должен показывать. Если юзер правильно авторизовался, то он попадает на home.php. Но мне надо, чтобы никто не мог попасть в скрипт home.php, просто набрав адрес в адресной строке браузера. Как это сделать, подскажите пожалуйста?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38191974
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте сессии
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192017
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простейший вариант
Код: php
1.
 if (!defined(MY_SECRET_CONSTANT)) die('Сдохни мезкий спамер!')


в начале каждого файла.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192020
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowпростейший вариантСработает только если home.php будет инклюдится из другого файла, где константа определена. Но при явном переходе на этот файл, как того хочет ТС, любой авторизованный в index.php юзер пойдет лесом.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192021
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, уже даже и попробовал, и тут выявился ряд проблем.

1) В случае удачной авторизации:

Код: php
1.
2.
 session_start(); 
$_SESSION['uid']=$_POST['login']



Это отрабатывает нормально, но когда идет обращение к $_SESSION из другого скрипта, получаю Undefined variable: _SESSION.
Доковырялся, что проблема в том, что register_globals в php.ini по умолчанию стоит off, ну рубанул off, так теперь при запуске php.exe вылетает "Directive register_globals no longer available in PHP"

Что стряслось-то и че делать?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192023
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowпростейший вариант
Код: php
1.
 if (!defined(MY_SECRET_CONSTANT)) die('Сдохни мезкий спамер!')


в начале каждого файла.

Пробовал и так: в случае удачного логина define('IN_SYSTEM',1), но его из другого скрипта не видно :(
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192026
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deGeneralДоковырялся, что проблема в том, что register_globals в php.ini по умолчанию стоит off, ну рубанул off

рубанул, конечно же, on
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192030
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$HTTP_SESSION_VARS что ли поюзать?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192040
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deGeneral$HTTP_SESSION_VARS что ли поюзать?

Undefined variable: HTTP_SESSION_VARS

Класс!
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192048
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deGeneralкогда идет обращение к $_SESSION из другого скрипта, получаю Undefined variable: _SESSION.А в другом то скрипте session_start() не забыли написать?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192053
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deGeneraldeGeneralДоковырялся, что проблема в том, что register_globals в php.ini по умолчанию стоит off, ну рубанул off

рубанул, конечно же, onГлупости, так как:
а) к проблеме не имеет отношения
б) выпилено в последних версиях



deGeneraldeGeneral$HTTP_SESSION_VARS что ли поюзать?

Undefined variable: HTTP_SESSION_VARS

Класс!Ибо, оно давно и безнадежно устарело.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192076
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkledeGeneralкогда идет обращение к $_SESSION из другого скрипта, получаю Undefined variable: _SESSION.А в другом то скрипте session_start() не забыли написать?

Нет, не забыл, написано.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192080
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleГлупости, так как:
а) к проблеме не имеет отношения
б) выпилено в последних версиях

Да, я это уже понял, т.к. у меня версия 5.4.7.

Что тогда делать? Как мне быть?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192116
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай, посмотрите в phpinfo(), включена ли поддержка сессий.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192141
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleНа всякий случай, посмотрите в phpinfo(), включена ли поддержка сессий.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192158
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleИспользуйте сессии
Да, это - единственный правильный способ, который не только в пхп применяется.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192186
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
var_dump(session_start()); 


?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192357
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: php
1.
var_dump(session_start()); 



?+1
Как в index.php, так и в home.php.

+ Включить вывод сообщений об ошибках - на случай если будет преждевременный вывод какой-то дряни вроде BOM.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192788
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так а чем это поможет, если ни $_SESSION, ни $HTTP_SESSION_VARS не определены вообще?!
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192815
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
deGeneral,

если после session_start() $_SESSION не определена - значит у вас опечатка в "$_SESSION".
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192841
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно. Переписал, теперь на $_SESSION не ругается, но все равно не работает - законного юзера футболит. Привожу фрагменты кода.

В login.php (его вызывает index.php по нажатию на кнопу "Войти"):

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if ($conn) {
    session_start();
    $_SESSION['uid']=$_POST['login'];
    $_SESSION['in_sys']=1;
    header('Location:home.php');
}
else {
    $_SESSION['in_sys']=0;
    header('Location:access_denied.php');
}



В home.php:

Код: php
1.
2.
3.
4.
5.
if (!$_SESSION['in_sys']) {
    header("Location:access_denied.php");
}

echo "Welcome home!";



Что здесь не так?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192866
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В home.php:

Код: php
1.
2.
3.
4.
5.
6.
session_start();
if (!isset($_SESSION['in_sys']) || !$_SESSION['in_sys']) {
    header("Location:access_denied.php");
}

echo "Welcome home!";
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192868
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deGeneralСтранно. Переписал, теперь на $_SESSION не ругается, но все равно не работает - законного юзера футболит. Привожу фрагменты кода.

В login.php (его вызывает index.php по нажатию на кнопу "Войти"):

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if ($conn) {
    session_start();
    $_SESSION['uid']=$_POST['login'];
    $_SESSION['in_sys']=1;
    header('Location:home.php');
}
else {
    $_SESSION['in_sys']=0;
    header('Location:access_denied.php');
}



В home.php:

Код: php
1.
2.
3.
4.
5.
if (!$_SESSION['in_sys']) {
    header("Location:access_denied.php");
}

echo "Welcome home!";



Что здесь не так?
А так:
Код: php
1.
2.
3.
4.
5.
session_start();
if (!isset($_SESSION['in_sys'])) {
    header("Location:access_denied.php");
}
...
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192897
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, заработало, спасибо!!!
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192904
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deGeneralvkleпропущено...
А в другом то скрипте session_start() не забыли написать?

Нет, не забыл, написано.

deGeneralДа, заработало, спасибо!!!

?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192929
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я подумал, что речь идет о session_start() в login.php, а там он есть, я не забыл.
А что, одного старта сессии недостаточно? Я-то как понимал это: если юзер правильно залогинился, стартанул один раз сессию - и пусть он в рамках этой сессии и колбасится. А зачем ее еще раз стартовать? Вот этот момент я как-то не понял...
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192954
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для пхп нет такого понятия как пользователь*

* - по крайней мере в том виде, в каком вы его используете.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38192989
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но есть понятие клиент. И у клиента есть своя сессия общения с сервером. Неправильно я мыслю?
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38193013
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы обратиться к этой сессии нужно ее загрузить/создать, для этого и служит session_start()
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38193090
deGeneral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, и это нужно делать каждый раз, когда хочешь обратиться к сессии? Тогда понятно.
...
Рейтинг: 0 / 0
PHP - видимость данных изо всех скриптов сайта
    #38193157
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deGeneralАга, и это нужно делать каждый раз, когда хочешь обратиться к сессии? Тогда понятно.
Нет, вызвать session_start() достаточно один раз в начале скрипта и далее она будет определена во всех подключаемых файлах.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP - видимость данных изо всех скриптов сайта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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