[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Циклы
Мария
подскажите пожалуйста, имеется поле,необходимо сделать его проверку:первый символ чило или нет,если нет, то ошибка,второй символ число или нет,если нет, то ошибка, третий символ число или нет,если нет то ошибка,четверноый символ число или нет,если нет, то ошибка пятый сивос "-", если нет то ошибка,6 символ......



Спустя 3 минуты, 3 секунды (21.06.2010 - 17:30) tomash написал(а):
все должно быть числом?

Спустя 3 минуты, 8 секунд (21.06.2010 - 17:34) tomash написал(а):
intval()

Спустя 2 минуты, 6 секунд (21.06.2010 - 17:36) Winston написал(а):
Так ?
if (!preg_match("/[\d+]{4}\-\d/", $str))
{
echo 'Error';
}
else
{
//.......
}

Спустя 2 минуты, 35 секунд (21.06.2010 - 17:38) tomash написал(а):
PHPprogramer
вот так
'/^[\d]{4}\-\d/'
, не дочитал до конца

Спустя 5 минут, 1 секунда (21.06.2010 - 17:43) Winston написал(а):
tomash
Да, спс.

Спустя 19 минут, 23 секунды (21.06.2010 - 18:03) Ice написал(а):
Цитата (Мария @ 21.06.2010 - 18:27)
6 символ......

что?..

Спустя 8 минут, 9 секунд (21.06.2010 - 18:11) Мария написал(а):
а если 4 числа-2числа-2числа вот так:

if (!preg_match("/^[\d+]{4}\-\/[\d+]{2}\-\/[\d+]{2}\-\d/", $str))
{
echo 'Error';
}
else{
//.......
}

Спустя 15 минут, 28 секунд (21.06.2010 - 18:26) tomash написал(а):
'/^[\d]{4}\-[\d]{2}\-[\d]{2}/'

Вот так

Спустя 14 минут, 29 секунд (21.06.2010 - 18:41) Мария написал(а):
спасибочки)

Спустя 1 час, 28 минут, 56 секунд (21.06.2010 - 20:10) Мария написал(а):
хм,странно,но у меня оно не работает(

Спустя 1 час, 18 минут, 42 секунды (21.06.2010 - 21:28) tomash написал(а):
Мария
А как оно не работает, функция выдает ошибку? Или не выдает, но не делает то , что нужно?

Спустя 7 часов, 21 минута, 1 секунда (22.06.2010 - 04:49) Мария написал(а):
она спокойно допускает написание букв,не выдавая ошибки.

Спустя 8 часов, 57 минут, 12 секунд (22.06.2010 - 13:47) Winston написал(а):
Введи в поле, то, что тебе надо и нажми кнопку и будет всё OK
if ($_POST['go'])
{
if (!preg_match("/^[\d]{4}\-[\d]{2}\-[\d]{2}$/i", $str))
{
echo 'Error';
}
else
{
echo 'Правильно !';
}
}

Спустя 40 секунд (22.06.2010 - 13:47) Ice написал(а):
А можно теперь мне? biggrin.gif
'/^\d{4}(?:\-\d{2}){2}$/'

Вы формат самого числа приведите здесь. Напишите как должно выглядеть

Спустя 2 минуты, 37 секунд (22.06.2010 - 13:50) Winston написал(а):
Ice
Насколько я помню без символьного класса, это \d{4} не будет работать, или я не прав ?

Спустя 8 минут, 24 секунды (22.06.2010 - 13:58) tomash написал(а):
PHPprogramerБудет по идее, ща проверим

Спустя 1 минута, 49 секунд (22.06.2010 - 14:00) Ice написал(а):
да брось:) домыслы это:) Все будет как часы работать:)

Спустя 38 секунд (22.06.2010 - 14:01) tomash написал(а):
"/^\d{4}\-\d{2}\-\d{2}$/i"


все работает))))

Ну так, \d это и так симольный клас, и без [].

Спустя 5 минут, 47 секунд (22.06.2010 - 14:06) Ice написал(а):
Цитата (tomash @ 22.06.2010 - 15:01)
"/^\d{4}\-\d{2}\-\d{2}$/i"


все работает))))

Ну так, \d это и так симольный клас, и без [].

а зачем регистронезависимость в регулярке для чисел? smile.gif

Спустя 1 минута, 23 секунды (22.06.2010 - 14:08) Winston написал(а):
Цитата (Ice @ 22.06.2010 - 13:06)
а зачем регистронезависимость в регулярке для чисел?

Привычка smile.gif

Спустя 14 минут, 12 секунд (22.06.2010 - 14:22) tomash написал(а):
Ice
упс..... не внимательный sad.gif

Спустя 2 часа, 58 минут, 58 секунд (22.06.2010 - 17:21) Мария написал(а):
2010-07-22 дорпустим так.

Спустя 1 минута, 56 секунд (22.06.2010 - 17:23) Winston написал(а):
Вот:
"/^\d{4}\-\d{2}\-\d{2}$/"

Спустя 16 секунд (22.06.2010 - 17:23) Мария написал(а):
а если все это делать с помощью цикла т.е. идем по страке и проаеряем что там введено?

Спустя 2 минуты, 5 секунд (22.06.2010 - 17:25) Winston написал(а):
Какой цикл... проще же через регулярку.

Спустя 6 минут, 45 секунд (22.06.2010 - 17:32) Gabriel написал(а):
PHPprogramer
а как по мне так проше explode() + intval;
займет больше места но меньше нервотрепки.

Спустя 3 минуты, 44 секунды (22.06.2010 - 17:36) Winston написал(а):
Gabriel
Писать цикл, там проверять и т. д., это же геммор какой wacko.gif
Регулярку уже составили, чё ещё не хватает ?

Спустя 6 минут, 13 секунд (22.06.2010 - 17:42) Gabriel написал(а):
PHPprogramer
накакой черт там цыкл?

Спустя 5 минут, 44 секунды (22.06.2010 - 17:48) gzim9x написал(а):
Мария
а если все это делать с помощью цикла т.е. идем по страке и проаеряем что там введено?

вам нужно узнать в каком символе ошибка?

Спустя 4 минуты, 21 секунда (22.06.2010 - 17:52) Winston написал(а):
Gabriel
Хорошо... Можно без цикла, как ты это предлагаешь делать? Так:
$a = '2010-06-22';
$b = explode('-', $a);
if (intval($b[0]) && intval($b[1]) && intval($b[2]))
echo 'OK';

Спустя 21 минута, 47 секунд (22.06.2010 - 18:14) Мария написал(а):
а что если все это в модуле для друпал?пполучается надо создать эту функцию и на определенных этапах ее вызывать?

Спустя 3 минуты, 30 секунд (22.06.2010 - 18:17) Мария написал(а):
Fatal error: Function name must be a string in S:\home\sait\www\sites\all\modules\kuhmenu\kuhmenu.module on line 201

Спустя 3 минуты, 48 секунд (22.06.2010 - 18:21) Winston написал(а):
А код покажи

Спустя 2 минуты, 18 секунд (22.06.2010 - 18:23) Мария написал(а):
function kuhmenu_insert($node){
if (!$dat("/^\d{4}\-\d{2}\-\d{2}$/", $str)){


db_query("INSERT INTO {kuhmenu} (nid, dat, spisok) VALUES (%d, '%s', '%s')", $node->nid, $node->dat, implode(",", $node->spisok));

}
else
{drupal_set_message(t('Не верно введена дата.'), 'error');
}
}

Спустя 3 минуты, 12 секунд (22.06.2010 - 18:27) Мария написал(а):
вообще по хорошему надо эту проверку отдельной функцией делать,и вызывать в нужных местах,так как там еще это пригодиться.но пока разобраться так.

Спустя 3 минуты, 17 секунд (22.06.2010 - 18:30) Winston написал(а):
Может так ?
function kuhmenu_insert($node)
{
if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $переменная_которую_нужно_проверить))
{
db_query("INSERT INTO {kuhmenu} (nid, dat, spisok) VALUES (%d, '%s', '%s')",$node->nid, $node->dat, implode(",", $node->spisok));
}
else
{
drupal_set_message(t('Не верно введена дата.'), 'error');
}
}

Спустя 5 минут, 7 секунд (22.06.2010 - 18:35) Мария написал(а):
warning: preg_match() expects parameter 2 to be string, object given in S:\home\sait\www\sites\all\modules\kuhmenu\kuhmenu.module on line 210.
Не верно введена дата.
warning: Invalid argument supplied for foreach() in S:\home\sait\www\sites\all\modules\cck\content.module on line 1284.
неужели я все таки хорошо завтра защищу свой диплом!))))
уже есть ошибка в дате,меня она очень радует))
но!!!она есть даже в том случае если дата введена правельно.
в 210 строке: if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $node))

Спустя 6 минут, 30 секунд (22.06.2010 - 18:42) Мария написал(а):
а можно чтоб эта ошибка появлялась,не переходя на следующую страницу?
а то получается так что ошибка в дате,тут же пишет что это дело сохранено,хотя на самом то деле не сохраняется и редактировать нельзя,только все сначала начинать.

Спустя 25 минут, 20 секунд (22.06.2010 - 19:07) tomash написал(а):
if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $node->dat или $node->date)) 


а так?
Просто $node это объект, а нужна строка

Спустя 9 минут, 3 секунды (22.06.2010 - 19:16) Мария написал(а):
function kuhmenu_insert($node){ if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $переменная_которую_нужно_проверить)) { db_query("INSERT INTO {kuhmenu} (nid, dat, spisok) VALUES (%d, '%s', '%s')",$node->nid, $node->dat, implode(",", $node->spisok)); } else { drupal_set_message(t('Не верно введена дата.'), 'error'); }}
вот в этом варианте работает,просто переходит по кнопке сохранить и выдает ошибку и не сохраняет никаких данных.

Спустя 2 минуты, 27 секунд (22.06.2010 - 19:18) Мария написал(а):
а,все поняла что сделать)

Спустя 1 минута, 4 секунды (22.06.2010 - 19:19) Мария написал(а):
спасибо большое вы просто спасли мой диплом!))))

Спустя 1 минута, 47 секунд (22.06.2010 - 19:21) tomash написал(а):
Мария
Удачи на защите. Читайте документацию

Спустя 5 минут, 3 секунды (22.06.2010 - 19:26) Мария написал(а):
спасибо)я б почитала,просто защита уже завтра))))

Спустя 12 минут, 57 секунд (22.06.2010 - 19:39) Winston написал(а):
Мария
Чего было тянуть ?

Спустя 4 минуты, 53 секунды (22.06.2010 - 19:44) Мария написал(а):
да чет не думала что дойдет до написание модуля.да и время как-то быстро пролетело.все дела дела,на диплом мало времени оставалось(((
но в ВУЗе точно буду все заранее делать)))

Спустя 1 час, 46 минут, 39 секунд (22.06.2010 - 21:31) tomash написал(а):
Мария
Я тож так думал wink.gif

Спустя 7 часов, 8 минут, 4 секунды (23.06.2010 - 04:39) Мария написал(а):
то ли я вчера уже уставшая была,то ли что, но сегодня надпись не верно введена дата выводится и тогда когда она введена верно.

Спустя 5 часов, 29 минут, 5 секунд (23.06.2010 - 10:08) tomash написал(а):
Мария
А можно код посмотреть?

Спустя 5 часов, 53 минуты, 3 секунды (23.06.2010 - 16:01) Мария написал(а):
я ненавижу этот друпал!!!!!видеть его больше не хочу!!!пришла в колледж залезла в код....все работает,все хорошо.а на защите.....под админом не зашла.....проблема была в модуле,с чем конкретно не понятно,даже если файл оставить пцустым,зайти не возможно,то ли чот-то с кодировкой,то ли еще чем это связано,в итоге 4 на защите я сегодня получила.

Спустя 12 минут, 24 секунды (23.06.2010 - 16:13) tomash написал(а):
Мария
Сочуствую))) Но 4 не самое страшное)


_____________
Вот и закончилась учеба.гдеб найти работу...
Быстрый ответ:

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