[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Глюк или я туплю?
Каретный


class Session
{
protected static $_instance = false;

public static function it()
{
if(self::$_instance === false)
{
self::$_instance = new session();
}
return self::$_instance;
}

public function process()
{
var_dump($_SESSION);

$hash = $_SESSION['hash'];

if(!empty($hash))
{
echo $hash;
}
else
{

mail('bla@bla.ru','','');
}
}
}


session_start();

// удаляю после первого запуска
$_SESSION['hash'] = '222222';

session::it()->process();



болк else выполняеться в любом случае, такое наблюдается при запуске скрипта в опере.
проблема в опере? Может кто сталкивался? В опере проблема?
гуг выдал где-то пост у мана такая же беда, но там безответно.
подскажите, кто что по этому считает.
Тут видео



Спустя 6 минут, 55 секунд (4.02.2012 - 23:37) SerginhoLD написал(а):
$hash = $_SESSION['hash']);

тут по-моему что-то лишнее, или чего-то не хватает.

а чисто по логике, всякую хрень из сессий нужно пихать в конструктор (даже ни разу не пробовал выложенный тут вариант), имхо

Спустя 15 секунд (4.02.2012 - 23:37) Invis1ble написал(а):
возможно в браузере куки отключены, как вариант

Спустя 4 минуты, 21 секунда (4.02.2012 - 23:42) Каретный написал(а):
да там скобка убрать ее надо, это не боевой код, для примера.

куки включены.
причем ситуация такая что если запихнуть в else
var_dump('блаблабла'); не чего не выведет, а функции или методы будут срабатывать. Странность. С пеной у рта два дня сижу. biggrin.gif
Использую денвер, пыха 5.3.3

Спустя 2 часа, 24 минуты, 21 секунда (5.02.2012 - 02:06) Каретный написал(а):
вот тут можно посмотреть
http://www.yapfiles.ru/show/344980/29a7b46...9400a8.flv.html

Спустя 19 минут, 24 секунды (5.02.2012 - 02:25) Invis1ble написал(а):
Каретный
да, 2 раза видео посмотрел - НЁХ, или мне спать давно уже пора... Такое ощущение, что ты запускаешь код не тот, который демонстрируешь в IDE.

Спустя 8 минут, 17 секунд (5.02.2012 - 02:34) Invis1ble написал(а):
Пропиши в начале файла
error_reporting(E_ALL);
ini_set('display_errors', 'On');

попробуй так
    public function process()
{
var_dump($_SESSION);

$hash = isset($_SESSION['hash']) ? $_SESSION['hash'] : null;

if ($hash !== null)
{
echo $hash;
}
else
{
mail('bla@bla.ru','','');
}
}

Спустя 5 минут, 41 секунда (5.02.2012 - 02:39) caballero написал(а):
    
$hash = isset($_SESSION['hash']) ? $_SESSION['hash'] : null;
if ($hash !== null)

можно попроще
if(isset($_SESSION['hash'])

Спустя 1 минута, 44 секунды (5.02.2012 - 02:41) Invis1ble написал(а):
caballero
Цитата
можно попроще

согласен, просто может у ТС в реальном коде в блоке if много кода, где используется именно $hash. Сути не меняет.

Спустя 2 минуты, 5 секунд (5.02.2012 - 02:43) caballero написал(а):
а чего бы дебагером не пройтись
как минимум можно будет убедится что код нужный выполняется

не может быть так чтобы сразу после присвоения var_dump ничего не вывел

Спустя 2 минуты, 35 секунд (5.02.2012 - 02:46) Invis1ble написал(а):
Цитата
не может быть так чтобы сразу после присвоения var_dump ничего не вывел

так судя по видео, у него при запросе через оперу и if- и else-блок выполняется biggrin.gif
причем в else-блоке перескакивает через var_dump('ахтунг!'); smile.gif

Каретный
Цитата
гуг выдал где-то пост у мана такая же беда, но там безответно.

вот эту фразу я не совсем понял, мягко говоря

Спустя 4 минуты, 35 секунд (5.02.2012 - 02:50) caballero написал(а):
проверил сам c IE
все работает как написано
вряд ли Опера как то влмяет на серверную часть

Спустя 2 минуты, 26 секунд (5.02.2012 - 02:53) Invis1ble написал(а):
Цитата
вряд ли Опера как то влмяет на серверную часть

разве что Опера скрещена с денвером и пыхом неизвестным науке макаром laugh.gif



Спустя 2 минуты, 8 секунд Invis1ble написал(а):
Еще как вариант - Опера показывает закэшированный ранее контент.
Обновлять нужно через Ctrl+r
а еще лучше - почистить кэш и отключить его

Спустя 5 минут, 17 секунд (5.02.2012 - 02:58) Каретный написал(а):
Это здец, проверял на разных компах, с разными версиями оперы. одна и та же мистика.
Попробуйте у себя запустить пожалуйста.
Стоит все как надо, нечего не затачивал в денвере.
При просмотре в других браузерах код как надо пашет. Это с оперой жопа такая.

Цитата

так судя по видео, у него при запросе через оперу и if- и else-блок выполняется
причем в else-блоке перескакивает через var_dump('ахтунг!');


Все так и есть. Это не кеш, тут на него не стоит грешить.

Спустя 7 минут, 17 секунд (5.02.2012 - 03:05) Invis1ble написал(а):
Цитата
Попробуйте у себя запустить пожалуйста.

попробовал такой код:
class Session
{
protected static $_instance = false;

public static function it()
{
if(self::$_instance === false)
{
self::$_instance = new session();
}
return self::$_instance;
}

public function process()
{
$hash = $_SESSION['hash'];

if (!empty($hash))
{
echo 'Step 1a';
var_dump($hash);
}
else
{
echo 'Step 1b';
mail('username@domain.com', 'subject', 'message');
}
}
}


session_start();

// удаляю после первого запуска
$_SESSION['hash'] = '222222';

session::it()->process();

Если не обращать внимание на notice при пустой сессии - то у меня все работает корректно и в опере и в хроме :rolleyes:

Спустя 5 минут, 15 секунд (5.02.2012 - 03:10) Каретный написал(а):
Цитата (Invis1ble @ 5.02.2012 - 00:05)
Цитата
Попробуйте у себя запустить пожалуйста.

попробовал такой код:
class Session
{
protected static $_instance = false;

public static function it()
{
if(self::$_instance === false)
{
self::$_instance = new session();
}
return self::$_instance;
}

public function process()
{
$hash = $_SESSION['hash'];

if (!empty($hash))
{
echo 'Step 1a';
var_dump($hash);
}
else
{
echo 'Step 1b';
mail('username@domain.com', 'subject', 'message');
}
}
}


session_start();

// удаляю после первого запуска
$_SESSION['hash'] = '222222';

session::it()->process();

Если не обращать внимание на notice при пустой сессии - то у меня все работает корректно и в опере и в хроме :rolleyes:

Ага, так и у меня робит, ты после первого запуска закомменти $_SESSION['hash'] = '222222';
И вот тут начнуться чудеса.

Спустя 2 минуты, 25 секунд (5.02.2012 - 03:13) Invis1ble написал(а):
Каретный
Цитата
И вот тут начнуться чудеса.

у меня не начались, конечно я закомментил после первого запуска и запустил еще по пару раз. Потом перезапустил браузер и еще раз проделал тоже самое. Говорю тебе - у меня все норм работает.
У тебя оперу кто-то сглазил, а денвер - это вообще глючная хрень.

Спустя 3 минуты, 21 секунда (5.02.2012 - 03:16) Каретный написал(а):

session_start();

$hash = $_SESSION['hash'];

if (!empty($hash))
{
echo 'Step 1a';
var_dump($hash);
}
else
{
echo 'Step 1b';
$_SESSION['hash'] = '222222';
mail('username@domain.com', 'subject', 'message');
}



Мда, поподалово. Никогда с денвером проблем небыло. Сейчас пых другой на него подцеплю, проверю.

Спустя 1 минута, 59 секунд (5.02.2012 - 03:18) Invis1ble написал(а):
В NetBeans есть встроенный дебаггер, если что.
Тебе об этом уже caballero выше писал.

Спустя 22 секунды (5.02.2012 - 03:19) caballero написал(а):
как раз на денвере я и проверял
апач и php деневра ничем не отличается от обычных

Спустя 1 минута, 38 секунд (5.02.2012 - 03:20) caballero написал(а):
Цитата
В NetBeans есть встроенный дебаггер, если что

встроенного нет - надо цеплять xdebag

в Nusphere phpeditor есть

Спустя 24 секунды (5.02.2012 - 03:21) Каретный написал(а):
Дебажил нетбинсом и xdebug, все норм.

Спустя 6 минут, 33 секунды (5.02.2012 - 03:27) Invis1ble написал(а):
caballero
Цитата
встроенного нет - надо цеплять xdebag

ну это да, я имел ввиду интерфейс для дебага

Спустя 4 минуты, 17 секунд (5.02.2012 - 03:31) caballero написал(а):
Цитата (Каретный @ 5.02.2012 - 00:21)
Дебажил нетбинсом и xdebug, все норм.

значит что то с сессиями (точнее с куками) на опере
убери класс и просто проверь как сессия работает

Спустя 17 минут, 24 секунды (5.02.2012 - 03:49) Каретный написал(а):
Всем спасибо, проблема решилась, только так и не известно что такое было.
Чудеса чудесные. biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.