Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переменная числового типа
 
 автор: nickson   (03.12.2006 в 17:12)   письмо автору
 
 

В скрипт передается переменная, и потом проверяется является ли она числом с помощью is_numeric. Всё идет нормально. Но когда переменная содержить значения "0", то уже выдает ошибку, в смысле, на основании того, что переменная не числового типа. Почему это происходит?

   
 
 автор: Fli   (03.12.2006 в 17:29)   письмо автору
 
   для: nickson   (03.12.2006 в 17:12)
 

Пробуй так!


intval ($var);

   
 
 автор: nickson   (04.12.2006 в 14:13)   письмо автору
 
   для: Fli   (03.12.2006 в 17:29)
 

Не получается. Сделал так -

<?
if(isset($_POST['use_st_1']))
                    {
                        if(!
intval($_POST['st_1']))
                        {
                            if(
intval($_POST['st_1']))
                            {
                                
$st_1=$_POST['st_1'];
                            }
                            else
                            {
                                
$stop=true;
                                
?><b><center><font color=red>Значение одного или нескольких полей являются неверными</font></center></b><?
                            
}
                        }
                        else
                        {
                            
$stop=true;
                            
?><b><center><font color=red>Вы не заполнили одно или несколько необходимых полей</font></center></b><?
                        
}
                    }
?>

Здесь в любом случае (даже если поле пустое) одобряет проверку if(!intval($_POST['st_1'])), но тут же дальше по проверке if(intval($_POST['st_1'])), которая по-сути является оборотной к предыдущей, уже реагирует по-другому, и идёт на ошибку.. Не знаю что и делать.

А изначально у меня было так:

<?
if(isset($_POST['use_st_1']))
                    {
                        if(isset(
$_POST['st_1']))
                        {
                            if(
is_numeric($_POST['st_1']))
                            {
                                
$st_1=$_POST['st_1'];
                            }
                            else
                            {
                                
$stop=true;
                                
?><b><center><font color=red>Значение одного или нескольких полей являются неверными</font></center></b><?
                            
}
                        }
                        else
                        {
                            
$stop=true;
                            
?><b><center><font color=red>Вы не заполнили одно или несколько необходимых полей</font></center></b><?
                        
}
                    }
                    else
                    {
                        
$st_1='-';
                    }
?>

   
 
 автор: Trianon   (04.12.2006 в 14:25)   письмо автору
 
   для: nickson   (04.12.2006 в 14:13)
 

intval выплолняет не проверку, а преобразование к int.

   
 
 автор: nickson   (04.12.2006 в 14:29)   письмо автору
 
   для: Trianon   (04.12.2006 в 14:25)
 

А... Тепер понятно, я то думаю..

   
 
 автор: nickson   (04.12.2006 в 14:56)   письмо автору
 
   для: nickson   (04.12.2006 в 14:29)
 

Понятно. Ошибка моя была в том, что я использовал проверку на !empty, а нужно было использовать isset. Просто.. не знаю то ли раньше я использовал и что-то не так работало, то ли раньше я какую-то ошибку сделал, и что-то там не работало.. Факт того, что стал чаще использовать именно empty вместо isset. Получается, функция empty приверяет не пусто ли значение, тоесть, даже если оно и не совсем пустое, но обозначает его, тоесть тот же "0", то это тоже считается пустым значением.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования