Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2009, 23:23   #1
Gromsky
Пользователь
 
Аватар для Gromsky
 
Регистрация: 27.02.2008
Сообщений: 64
Печаль Проблемы, наверное, с сессиями

Код:
$Ferr=Connect($NName,$Pass);			
echo $Ferr;
if ($Ferr==0)
	{
		LoginingForm($NName,1);
	}
else 
	{						
		UserForm($_SESSION['TUser']);
	};
Это МОЯ ПРОБЛЕМА.
echo $Ferr; выводит что Ferr = 'UserName' (это возвращает функция connect)
а выполняет напостой LoginingForm($NName,1);... почему?
единственное мое предположение, это то что я в connect подключаю и записываю сессии, мож это както влияет. Что делать ума ниприложу
Ученье свет, а неученье - чуть свет и на работу
Gromsky вне форума Ответить с цитированием
Старый 10.03.2009, 00:30   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Дело в том, что $Ferr нужно сравнивать с пустой строкой ("") а не числом 0:
Код:
$Ferr=Connect($NName,$Pass);			
echo $Ferr;
if ($Ferr=='')
	{
		LoginingForm($NName,1);
	}
else 
	{						
		UserForm($_SESSION['TUser']);
	};
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 10.03.2009, 01:29   #3
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Срабатывает автоматическое приведение типов.
Если строку(string) привести к числу(int) то будет 0
PHP код:
 $g='string';
 
$g=(int)$g;
 echo 
$g;
 if(
$g==0) echo 'yes'
поэтому ваш код работает так как Вы описали.
А вот если написать
PHP код:
if('string'===0) echo 'yes'
код уже не сработает, тк оператор === требует абсолютного равенства переменных.
Странно?
Дело в том что php, помогает быстро программировать "додумывая" за программиста в первом случае, а во втором программист указывает что хочет абсолютного соответствия и преобразования не идёт.
Стрелок-охотник

Последний раз редактировалось mv28jam; 10.03.2009 в 01:52.
mv28jam вне форума Ответить с цитированием
Старый 10.03.2009, 15:32   #4
Gromsky
Пользователь
 
Аватар для Gromsky
 
Регистрация: 27.02.2008
Сообщений: 64
По умолчанию

Спасибо вам большое... совет на счет "===" дейстиветельно помог... это работает без ошибок... вот только теперь бы докопатся до сути, почему же предидущий вариант несработал....
Ученье свет, а неученье - чуть свет и на работу
Gromsky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача (наверное на перебор) Witaliy Паскаль, Turbo Pascal, PascalABC.NET 4 18.01.2009 18:11
Психо Гипноз....Наверное зря Я сюда это выложил.)))) Izhic Свободное общение 5 23.10.2008 16:25
Работа с сессиями вешает хост ADSoft PHP 3 22.07.2008 12:57
Ошибка DBEngine при работе с сессиями Lady_olga БД в Delphi 3 17.05.2008 18:08
проблема с сессиями nntpaha PHP 3 16.03.2008 16:10