 |
|

11.06.2009, 23:01
|
|
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами:
9423746
Репутация:
2399
|
|
PHP код:
if ( session_id() == '' ) {
session_start();
}
|
|
|

11.06.2009, 23:57
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами:
9410786
Репутация:
2731
|
|
PHP код:
if (!session_id())
session_start();
! - не существует.
|
|
|

12.06.2009, 00:19
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами:
9394886
Репутация:
1467
|
|
Patronik
session_start(); должна вызываться лишь 1 раз за выполнение скрипта. Если где-то include другого скрипта, то в том другом скрипте не должно быть session_start();
А использовать сессии ТАК уже давно не принято - сейчас надо делать так:
$_SESSION['auth'] = 1; # регистрация переменной сессии
if ( $_SESSION['auth'] != 1 ) { echo 'Ошибка'; }
Примерно так вот
|
|
|

12.06.2009, 02:24
|
|
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
С нами:
9541766
Репутация:
2407
|
|
Как вас много
Вы проверяете результат присвоения ($_SESSION['auth'] != 1), а не сравнения ($_SESSION['auth'] !== 1)
Хорошо, что ты один такой...
Открываем мануал по операторам сравнения:
http://ru2.php.net/manual/ru/language.operators.comparison.php
Что же мы видим?
$a != $b | Не равно | TRUE если $a не равно $b.
$a !== $b | Тождественно не равно | TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)
То же самое я говорил несколькими постами выше.
Специально поясню:
1!=0 это true
0!=0 это false
-------
"1"!=0 это true
"1"!=1 это false - тип данных не учитывается
-------
"1"!==0 это true
"1"!==1 это true - имеем типы данных разные
И еще - по одному-единственному оператору присвоения (=) и его комбинированным вариантам (+=, *=, .= и т.д.) можешь почитать здесь:
http://php.benscom.com/manual/ru/language.operators.assignment.php
Последний раз редактировалось d_x; 12.06.2009 в 02:40..
|
|
|

12.06.2009, 09:11
|
|
Познающий
Регистрация: 16.03.2009
Сообщений: 82
С нами:
9029260
Репутация:
23
|
|
Окей сделал я так :
В первом файле создал сесию таким образом и присвоил $auth.
session_start();
$_SESSION['auth']=1;
Во втором файле чтобы использовать переменную сесии написал так:
<?php
session_start();
if (!isset($_SESSION['auth']) || $_SESSION['auth']!=1)
{
echo '<p>Доступ закрыт</p>
<br><p><center><a href = "index.php">На главную</a></center></p>';
exit;
}
?>
Браузер видает ошыбку
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\train.com\www\auth.php:9) in Z:\home\train.com\www\auth.php on line 31
|
|
|

12.06.2009, 09:16
|
|
Познающий
Регистрация: 10.03.2009
Сообщений: 54
С нами:
9037788
Репутация:
50
|
|
Читай http://phpfaq.ru/headers
|
|
|

12.06.2009, 09:22
|
|
Познающий
Регистрация: 26.10.2007
Сообщений: 83
С нами:
9758702
Репутация:
50
|
|
Patronik, сунь в самое начало скрипта ob_start(); (а ошибка из за того что перед стартом сессии идет какой то вывод в браузер)
|
|
|

12.06.2009, 09:24
|
|
Познающий
Регистрация: 16.03.2009
Сообщений: 82
С нами:
9029260
Репутация:
23
|
|
Спасибо я только что из туда. Разобрался я с проблемой. Суть в том что команды header(), setcookie, session_start(), посилаються в заголовках. А если я до знака <? написал теги штмл то заголовки уже ушли и отослать их еще раз невозможно. Надо ставить создание сесии в самом начале страници чтобы команда послалась в заголовке, а не после того как заголовки уже пошли.
|
|
|

12.06.2009, 15:16
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
Сообщение от Patronik
Спасибо я только что из туда. Разобрался я с проблемой. Суть в том что команды header(), setcookie, session_start(), посилаються в заголовках. А если я до знака <? написал теги штмл то заголовки уже ушли и отослать их еще раз невозможно. Надо ставить создание сесии в самом начале страници чтобы команда послалась в заголовке, а не после того как заголовки уже пошли.
Чо реально так?!А то что мы выше уже 3 раза это писали это ниче,да?
|
|
|

12.06.2009, 19:41
|
|
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
С нами:
9296442
Репутация:
21
|
|
Нужно вывести символ $ как это сделать, а то php распознает это как переменную т.е.
echo "$loliho";
чтобы выводило
$loliho
а не воспринимало данное вырадение как вывод переменной $loliho.
Спасибо
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|