HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #10961  
Старый 11.06.2009, 23:01
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами: 9423746

Репутация: 2399


По умолчанию

PHP код:
    if ( session_id() == '' ) {
      
session_start();
    } 
 
Ответить с цитированием

  #10962  
Старый 11.06.2009, 23:57
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

PHP код:
 if (!session_id()) 
      
session_start(); 
! - не существует.
 
Ответить с цитированием

  #10963  
Старый 12.06.2009, 00:19
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

Patronik
session_start(); должна вызываться лишь 1 раз за выполнение скрипта. Если где-то include другого скрипта, то в том другом скрипте не должно быть session_start();
А использовать сессии ТАК уже давно не принято - сейчас надо делать так:

Цитата:
$_SESSION['auth'] = 1; # регистрация переменной сессии

if ( $_SESSION['auth'] != 1 ) { echo 'Ошибка'; }
Примерно так вот
 
Ответить с цитированием

  #10964  
Старый 12.06.2009, 02:24
d_x
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #10965  
Старый 12.06.2009, 09:11
Patronik
Познающий
Регистрация: 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
 
Ответить с цитированием

  #10966  
Старый 12.06.2009, 09:16
-JC-
Познающий
Регистрация: 10.03.2009
Сообщений: 54
С нами: 9037788

Репутация: 50
По умолчанию

Читай http://phpfaq.ru/headers
 
Ответить с цитированием

  #10967  
Старый 12.06.2009, 09:22
Trieg
Познающий
Регистрация: 26.10.2007
Сообщений: 83
С нами: 9758702

Репутация: 50
По умолчанию

Patronik, сунь в самое начало скрипта ob_start(); (а ошибка из за того что перед стартом сессии идет какой то вывод в браузер)
 
Ответить с цитированием

  #10968  
Старый 12.06.2009, 09:24
Patronik
Познающий
Регистрация: 16.03.2009
Сообщений: 82
С нами: 9029260

Репутация: 23
По умолчанию

Спасибо я только что из туда. Разобрался я с проблемой. Суть в том что команды header(), setcookie, session_start(), посилаються в заголовках. А если я до знака <? написал теги штмл то заголовки уже ушли и отослать их еще раз невозможно. Надо ставить создание сесии в самом начале страници чтобы команда послалась в заголовке, а не после того как заголовки уже пошли.
 
Ответить с цитированием

  #10969  
Старый 12.06.2009, 15:16
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами: 9223466

Репутация: 3171


По умолчанию

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

  #10970  
Старый 12.06.2009, 19:41
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
С нами: 9296442

Репутация: 21
По умолчанию

Нужно вывести символ $ как это сделать, а то php распознает это как переменную т.е.
echo "$loliho";

чтобы выводило
$loliho
а не воспринимало данное вырадение как вывод переменной $loliho.
Спасибо
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.