Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: переменная индекс

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Телевизор
Отправлено: 17 Февраля, 2011 - 01:37:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




Помогите разобраться, у меня фигня какая-то... В кепке

из формы беру какой либо текст методом post и присваиваю её к переменной потом её обрабатываю грубоговоря...
когда передаешь через форму какой либо текст то все окей за исключение указанных запрещенных символов в переменной, но когда пишешь цифры почемуто все ровно останавливается на 13 строке, а если в форме написать 0 то вообще пустой экран.
С чем это связано?

Может регулярное выражение не правильное или из за моих глобальных переменных ?
что-то меня не допирает...

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $_CONFIG['bed_post_url'] = "(domain.ru)|(rty.ru)";
  3. $_CONFIG['max_symbol_long_url'] = 4000;
  4. ?>
  5.  
  6. <?
  7. $url = trim($_POST['u_url']);    
  8. if($url =='')      // проверка на пустой ввод
  9. {
  10. echo "Проверка на пустой ввод";
  11.  echo "<br>".__LINE__;                                                 
  12. }
  13. elseif(($url) | preg_match("/".$_CONFIG['bed_post_url']."/i", $url))
  14. {
  15. echo "Не не годится...";
  16.  echo "<br>".__LINE__; 
  17. }                              
  18. elseif (strlen($url) >= $_CONFIG['max_symbol_long_url'])
  19. {
  20. echo "Слишком много символов";
  21.  echo "<br>".__LINE__;                                 
  22. }
  23. elseif
  24. ...
  25. ?>

(Отредактировано автором: 17 Февраля, 2011 - 01:40:28)

 
 Top
Okula
Отправлено: 17 Февраля, 2011 - 01:45:17
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Телевизор, что-то я не пойму что ты хочешь сделать вот этой регуляркой:
(domain.ru)|(rty.ru)
Напиши конкретно что должна делать регулярка, потому-что она у тебя составлена неправильно.
 
 Top
Телевизор
Отправлено: 17 Февраля, 2011 - 01:49:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




если в форму ввели запрещенный символ или словосочетание то выводило крикливую надпись а если не присутствуют запрещенные символы то далее elseif...

неужели регулярка так ? а я сидел думал по синтаксису собирал...

(Отредактировано автором: 17 Февраля, 2011 - 01:51:52)

 
 Top
Okula
Отправлено: 17 Февраля, 2011 - 01:53:53
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Телевизор, ну так ты напиши какие разрешены символы в сообщения, чтоб знать какую регулярку составлять
 
 Top
Телевизор
Отправлено: 17 Февраля, 2011 - 02:13:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




Okula

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

Вообще в регулярке планировал разные слова и domain.com и hihi и tyty ....
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Февраля, 2011 - 07:16:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)





$_CONFIG['bed_post_url'] = "domain.ru|rty.ru|tyty|hihi"

(Добавление)
В скобки берется подмаска, но она у вас одна с условием "или".
 
 Top
Okula
Отправлено: 17 Февраля, 2011 - 10:47:03
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Телевизор, только проэкранировать спец символы надо. Либо функцией preg_quote() либо самостоятельно ручками
 
 Top
OrmaJever Модератор
Отправлено: 17 Февраля, 2011 - 11:46:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




в 13 строке в условии должно стоять || а не |
(Добавление)
Да и зачем использовать preg_match(), в даном случаеможно омбойтись strpos()

(Отредактировано автором: 17 Февраля, 2011 - 11:48:44)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Телевизор
Отправлено: 17 Февраля, 2011 - 22:43:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




наткнулся на функцию имплоде и с химичинием вышло так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $_CONFIG['bed_post_url'] = array("opp","google.ru");
  3. elseif(preg_match("/".implode("|", $_CONFIG['bed_post_url'])."/i",$url))
  4. {
  5. echo "ок";
  6. }
  7.  


Но единственное не могу понять, почему когда в форму вводишь ноль, и отправляешь
выводится пустой экран, а все остальные символы работают...
Может этот ноль превращается в переменной в какой либо индекс чтоли, и при обработке этой переменной приравнивается к индексу? В общем что-то нефига не втыкаю.... Помогите пожалуйста разобраться

(Отредактировано автором: 17 Февраля, 2011 - 22:48:05)

 
 Top
OrmaJever Модератор
Отправлено: 17 Февраля, 2011 - 22:56:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Телевизор, а не проще просто поискать в масиве?
PHP:
скопировать код в буфер обмена
  1. $_CONFIG['bed_post_url'] = array("opp","google.ru");
  2. if(array_search($url, $_CONFIG['bed_post_url']) !== false) echo 'есть такой url в масиве';


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Okula
Отправлено: 18 Февраля, 2011 - 00:06:42
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Телевизор, если ты юзаешь поиск с помощью регулярных вырашений, то не забывай экранировать спецсимволы. Либо в ручную, либо с помощью функции preg_quote()
 
 Top
JustUserR
Отправлено: 18 Февраля, 2011 - 11:05:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Телевизор пишет:
А если в форме написать 0 то вообще пустой экран.
Возможной причиной осуществления функционирования предполагаеомго PHP-приложения с указанным аспектом является специальной трактования элемента строковой константы "0" - не согласованного с соответствующим типом контейнерного объекта на основании обеспечение операции автоматического преобразования типа информационного поля


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB