HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 11.06.2009, 19:26
Patronik
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме:
148667

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

Я на другой странице сайта создаю сесию кодом
<?php
session_start();
if ($auth!=1)
{
echo'<p>Доступ закритий</p>
<br><p><center><a href = "index.php" tarfet = "blank">На головну</a></center></p>';
exit;
}
?>

при регистациий переменной в сесию делаю:
session_start();
session_register("auth");
$auth = 1;

Но страница проверки переменной говорит echo'<p>Доступ закритий</p>. При том что файл сесии создался в папке хранения сесий и там если открить блокнотом записано "auth|i:1;". Что не так?
 
Ответить с цитированием

  #2  
Старый 11.06.2009, 20:17
L I G A
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме:
4532332

Репутация: 1196


По умолчанию

Цитата:
Сообщение от Patronik  
if ($auth!=1)
if("$auth"!=1)

Цитата:
Сообщение от Patronik  
tarfet = "blank"
target="blank"

Последний раз редактировалось L I G A; 11.06.2009 в 20:19..
 
Ответить с цитированием

  #3  
Старый 12.06.2009, 00:19
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


По умолчанию

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

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

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

  #4  
Старый 11.06.2009, 21:03
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


По умолчанию

Два поста выше моего - ни о чем...
Цитата:
if("$auth"!=1)
Смысл?
Цитата:
if ($auth != 1) выполниться в случае, если не удалось присвоить $auth значение 1
Неверно. Это выполнится, если значение $auth не равно 1. Если использовать оператор !==, то это сравнение с учетом типов данных.


Ответ по теме вопроса:
PHP код:
<?php
session_start
();
if (!isset(
$_SESSION['auth']) || $_SESSION['auth']!=1)
{
echo 
'<p>Доступ закрыт</p>
<br><p><center><a href = "index.php">На главную</a></center></p>'
;
exit;
}
?>
А вот это:
PHP код:
session_register("auth");
$auth 1
замени на это:
PHP код:
$_SESSION['auth']=1
И надо не забывать session_start()
 
Ответить с цитированием

  #5  
Старый 11.06.2009, 22:26
Patronik
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме:
148667

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

2d_x
спасибо попробую так.
Мне браузер еще пишет сто не существует такой директории и проблема с session_start().
Warning session_start(). No such file or directory on /tmp/sses_123124132453452345?
типа такого! Я в php.ini правлю путь сохранения даних сесии, а он снова кажет что нет такой директории
 
Ответить с цитированием

  #6  
Старый 11.06.2009, 22:46
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

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

Цитата:
Сообщение от Patronik  
2d_x
спасибо попробую так.
Мне браузер еще пишет сто не существует такой директории и проблема с session_start().
Warning session_start(). No such file or directory on /tmp/sses_123124132453452345?
типа такого! Я в php.ini правлю путь сохранения даних сесии, а он снова кажет что нет такой директории
Он пишет что нету файла сессии в этой директории
 
Ответить с цитированием

  #7  
Старый 11.06.2009, 23:01
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


По умолчанию

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

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

Репутация: 2731


По умолчанию

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

  #9  
Старый 12.06.2009, 02:24
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 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..
 
Ответить с цитированием

  #10  
Старый 12.06.2009, 09:11
Patronik
Познающий
Регистрация: 16.03.2009
Сообщений: 82
Провел на форуме:
148667

Репутация: 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
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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.