Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP - видимость данных изо всех скриптов сайта / 25 сообщений из 31, страница 1 из 2
20.03.2013, 17:53
    #38191882
deGeneral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
Вобщем, проблема в том, что я не знаю, как сделать так, чтобы в index.php устанавливалось значение некоторых нужных переменных, которые можно использовать потом, в других скриптах.

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


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

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
20.03.2013, 19:06
    #38192023
deGeneral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
ScareCrowпростейший вариант
Код: php
1.
 if (!defined(MY_SECRET_CONSTANT)) die('Сдохни мезкий спамер!')


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

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

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

Undefined variable: HTTP_SESSION_VARS

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

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



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

Undefined variable: HTTP_SESSION_VARS

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

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

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

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


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



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

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

если после session_start() $_SESSION не определена - значит у вас опечатка в "$_SESSION".
...
Рейтинг: 0 / 0
21.03.2013, 11:57
    #38192841
deGeneral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
Странно. Переписал, теперь на $_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
21.03.2013, 12:10
    #38192866
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
В 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
21.03.2013, 12:11
    #38192868
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
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
21.03.2013, 12:21
    #38192897
deGeneral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
Да, заработало, спасибо!!!
...
Рейтинг: 0 / 0
21.03.2013, 12:24
    #38192904
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - видимость данных изо всех скриптов сайта
deGeneralvkleпропущено...
А в другом то скрипте session_start() не забыли написать?

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

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

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


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