[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Куда-то теряется переменная
revaninfo
Всем привет, вобщем меня интересует один вопрос. Есть скрипт загрузки файлов, который работает на SWFUpload и есть вот такой фрагмент кода:


<?
$userlogin = $userlogin; // Проблемная переменная
if (!isset($_POST['UPLOAD_IDENTIFIER']) and !isset($_POST['downloadshare'])) {
if (!isset($userlogin)) {
include ("comp/modules/home/standart.php");
} else {
include ("comp/modules/home/account.php");
}

}
elseif(isset($_POST['UPLOAD_IDENTIFIER'])) {
die($userlogin); // Пытаюсь вывести логин пользователя
...


Дело в том, что когда я устанавливаю значение переменной $userlogin = 'Test';
то все выводится нормально, но когда $userlogin = $userlogin; то ничего не работает, $userlogin вообще теряется там где я пытаюсь её вывести. Кстати, после строки ($userlogin = $userlogin; // Проблемная переменная) я пытался выводить переменную userlogin и все было нормально. Что за чертовщина вообще, куда пропадает переменная, да и что это вообще может быть? smile.gif

Заранее спасибо



Спустя 31 минута, 40 секунд (16.03.2010 - 23:01) kirik написал(а):
Что за переменная $userlogin? Откуда она берется?

Спустя 10 минут, 27 секунд (16.03.2010 - 23:12) revaninfo написал(а):
Это не важно, когда я её пытаюсь выводить, на месте строки $userlogin = $userlogin; то все работает нормально, а вообще эта переменная создается в самом начале index файла.

Спустя 6 часов, 9 минут, 14 секунд (17.03.2010 - 05:21) kirik написал(а):
Не работает в месте с "if (!isset($userlogin)) {"??

Спустя 2 часа, 39 минут, 9 секунд (17.03.2010 - 08:00) revaninfo написал(а):
"if (!isset($userlogin)) {" - это работает, в этом то и вся проблема... Вообще мистика какая-то, если я вывожу userlogin после } elseif(isset($_POST['UPLOAD_IDENTIFIER'])) { то она не работает.

Спустя 59 минут, 53 секунды (17.03.2010 - 09:00) kirik написал(а):
Выше по коду нужно смотреть чего с $userlogin происходит и откуда она берется, раз вы говорите что
Цитата (revaninfo @ 16.03.2010 - 14:30)
когда я устанавливаю значение переменной $userlogin = 'Test'; то все выводится нормально


Спустя 7 часов, 32 минуты, 10 секунд (17.03.2010 - 16:32) revaninfo написал(а):
Да, но если вместо $userlogin = 'Test'; вписать echo $userlogin, то тоже все работает, вот что самое интересное, но если уж так нужен код, то вот он:


if (isset($_COOKIE['hash'])) {
$validate = mysql_query("SELECT * FROM `users` WHERE `hash` = '{$_COOKIE['hash']}' LIMIT 1") or die(mysql_error());
if (mysql_num_rows($validate) == 1) {
$userlogin = mysql_result($validate,0,'login');
}
}
elseif (isset($_POST['hash'])) {
$validate = mysql_query("SELECT * FROM `users` WHERE `hash` = '{$_POST['hash']}' LIMIT 1") or die(mysql_error());
if (mysql_num_rows($validate) == 1) {
$userlogin = mysql_result($validate,0,'login');
}
}


Спустя 2 часа, 19 минут, 14 секунд (17.03.2010 - 18:51) revaninfo написал(а):
Я подозреваю, что это из-за чертового SWFUpload... А что еще может быть? Вообще мистика какая-то... Неужели никто не стыкался с таким багом?

Спустя 2 часа, 17 минут, 3 секунды (17.03.2010 - 21:08) kirik написал(а):
А если у тебя не будет ни $_POST['hash'] ни $_COOKIE['hash']?
Кстати ты их пробовал выводить?

Спустя 14 минут, 56 секунд (17.03.2010 - 21:23) revaninfo написал(а):
Да пробовал, все супер. Да и еще вот один ньюанс, пробовал я выводить кукис hash на месте $userlogin = $userlogin он показывал нормальное значение, но если вместо die($userlogin); // Пытаюсь вывести логин пользователя, то уже совсем другое, левое какое-то значение. Маразм какой-то...

Спустя 12 минут, 46 секунд (17.03.2010 - 21:36) kirik написал(а):
А если попробовать отследить на каком этапе эта переменная пропадает? Начать с ее вывода сразу после определения.

Спустя 20 секунд (17.03.2010 - 21:36) dr_Lev написал(а):
Цитата
if (mysql_num_rows($validate) == 1) {

а если строк больше, или нет вообще, тогда переменная не создается

ой, больше не может быть... не разглядел лимит в запросе... но все же, а если нет строк?

Спустя 52 минуты, 3 секунды (17.03.2010 - 22:29) revaninfo написал(а):
dr_Lev, строки будут в любом случае, такова программа smile.gif в моем случае они есть, я уже несколько раз писал что отслеживал когда пропадает переменная, это происходит сразу при выполнении условия


} elseif(isset($_POST['UPLOAD_IDENTIFIER'])) {
die($userlogin); // Пытаюсь вывести логин пользователя


Если например сделать так:


echo $userlogin;
} elseif(isset($_POST['UPLOAD_IDENTIFIER'])) {
die($userlogin); // Пытаюсь вывести логин пользователя


То все будет работать

Спустя 2 минуты, 6 секунд (17.03.2010 - 22:31) revaninfo написал(а):
Да и забавно еще вот что, когда я присваиваю userlogin любой другой переменной, она все-равно не работает, что за чертовщина...

Спустя 2 дня, 12 часов, 31 минута, 20 секунд (20.03.2010 - 11:02) Анатоль написал(а):
comp/modules/home/account.php
comp/modules/home/standart.php
Быть может у тебя включен REGISTER_GLOBALS, а эти файлы перезаписывают твою переменную?

Спустя 1 час, 56 минут, 28 секунд (20.03.2010 - 12:58) revaninfo написал(а):
Да нет, тут вообще что-то невероятное творится... Я создал кукис ulogin попробовал вывести его, еще есть кукис lang, сначала я вывел кукис lang, удивительно, но он вывелся, а вот кукис ulogin не вывелся, это мистика какая-то, нереально!
Быстрый ответ:

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