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

Форум PHP

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

 

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

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

тема: Помогите задать условие.
 
 автор: Zhora_88   (06.05.2010 в 19:51)   письмо автору
 
 

Всем здрасте. Вот кусок кода:

$num_len = strlen($_POST['number']);
if(($_POST['number']!='') && !is_numeric($_POST['number']) || $num_len > 0 && $num_len < 12)
      {
        $content.= "<font color=\"red\"><b>Неправильно введено номер!</b></font>";
      }


задание: вывод ошибки при вводе в поле букв, меньше 12 и больше 12 символов, но при этом продолжать роботу скрипта при отправке пустого поля.... В даный момент условие работает, но оно пропускает номер, который состоит из больее чем 12 символов.

сначала было условие
if(($_POST['number']!='') && !is_numeric($_POST['number']) || $num_len !=  12)

но оно непропускало пустое поле.

  Ответить  
 
 автор: neadekvat   (06.05.2010 в 20:01)   письмо автору
 
   для: Zhora_88   (06.05.2010 в 19:51)
 

Я так и не понял. Что именно должно пропускать условие? Целые числа в [1;12]?

  Ответить  
 
 автор: Gubichev   (06.05.2010 в 20:11)   письмо автору
 
   для: Zhora_88   (06.05.2010 в 19:51)
 

If(strlen($_POST['number'])==12 || strlen($_POST['number'])==NULL)
{
 echo "Продолжаем работу";
}
else
{
 echo "Нужно ввести 12 символов";
}


Если правильно понял, ибо понять очень сложно..

  Ответить  
 
 автор: neadekvat   (06.05.2010 в 20:19)   письмо автору
 
   для: Gubichev   (06.05.2010 в 20:11)
 

Вместо
strlen($_POST['number'])==NULL
Лучше
empty($_POST['number'])

  Ответить  
 
 автор: Gubichev   (06.05.2010 в 20:23)   письмо автору
 
   для: neadekvat   (06.05.2010 в 20:19)
 

Верно, сглупил...

  Ответить  
 
 автор: Zhora_88   (06.05.2010 в 20:33)   письмо автору
 
   для: Gubichev   (06.05.2010 в 20:23)
 

Розложу все по полочкам:
есть поле НОМЕР.
если в поле содержаться буквы, количество символов НЕ равно 12 , то выдается ошибка.
если поле содержит 12 символов (именно цифр) или пустое, то скрипт продолжает работать.

Методом обратного нехотелось идти, ибо прийдется переделовать туеву кучу кода.

  Ответить  
 
 автор: neadekvat   (06.05.2010 в 20:37)   письмо автору
 
   для: Zhora_88   (06.05.2010 в 20:33)
 

Ну так вам скорее регулярка нужна
Что-то типа такого получится:
<?php
if (preg_match("/^[1-9]{12}$/"$_POST['number']) || empty($_POST['number'])) {}

  Ответить  
 
 автор: Gubichev   (06.05.2010 в 20:54)   письмо автору
 
   для: neadekvat   (06.05.2010 в 20:37)
 

-

  Ответить  
 
 автор: Zhora_88   (06.05.2010 в 22:44)   письмо автору
 
   для: Gubichev   (06.05.2010 в 20:54)
 

Всё, господа. Проблему решил, всем СПАСИБО.

  Ответить  
 
 автор: neadekvat   (06.05.2010 в 23:13)   письмо автору
 
   для: Zhora_88   (06.05.2010 в 22:44)
 

Это была не проблема, а задача.
И было бы справделиво здесь же оставить решение, которое нашли вы сами.

  Ответить  
 
 автор: Trianon   (07.05.2010 в 06:26)   письмо автору
 
   для: neadekvat   (06.05.2010 в 20:37)
 

Нуль - чем не цифра?

  Ответить  
 
 автор: neadekvat   (07.05.2010 в 07:13)   письмо автору
 
   для: Trianon   (07.05.2010 в 06:26)
 

Да, вполне себе цифра.

  Ответить  
Rambler's Top100
вверх

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