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]   

> Без описания
etoYA
Отправлено: 26 Октября, 2011 - 14:54:57
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Скрипт работает, но какой то через чур он здоровый и не оптимизированый, можно ли и стоит ли его оптимизировать?
PHP:
скопировать код в буфер обмена
  1. // Проверка на заполнение полей
  2.  
  3. if ($login == '') {
  4.         $error = true;
  5.         echo 'Введите логин <br />';
  6. }
  7. elseif (!preg_match('/^[A-Za-z0-9\[\]_\-\(\)]+$/', $login))
  8. {
  9.         $error = true;
  10.         echo 'Логин должен содержать только английские буквы, цифры и _ . [] () <br />';
  11. }
  12. elseif (strlen($login) < 4 AND strlen($login) > 16) {
  13.         $error = true;
  14.         echo 'Логин можеть быть от 4 до 16 символов <br />';
  15. }
  16. if ($password == '') {
  17.         $error = true;
  18.         echo 'Введите пароль <br />';
  19. }
  20. elseif  (!preg_match("/^[-a-zA-Z0-9]+$/", $login))
  21. {
  22.         $error = true;
  23.         echo 'Пароль должен содержать только английские буквы и цифры<br />';
  24. }
  25. elseif (strlen($login) < 6 AND strlen($login) > 16) {
  26.         $error = true;
  27.         echo 'Пароль можеть быть от 6 до 16 символов <br />';
  28. }
  29. if ($repeat == '') {
  30.         $error = true;
  31.         echo 'Повторите пароль <br />';
  32. }
  33. elseif ($password != $repeat) {
  34.         $error = true;
  35.         echo 'Пароли не совпадают<br />';
  36. }
  37. if ($email == '') {
  38.         $error = true;
  39.         echo 'Введите E-Mail <br />';
  40. }
  41. if ($country == '') {
  42.         $error = true;
  43.         $errorm = 'Выберите страну <br />';
  44. }
  45. if ($courier == '') {
  46.         $error = true;
  47.         echo 'Укажите стоимость курьера <br />';
  48. }
  49. elseif ($courier != 170) {
  50.         $error = true;
  51.         echo "Курьер стоит не $courier <br />";
  52. }
 
 Top
EuGen Администратор
Отправлено: 26 Октября, 2011 - 15:14:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Если не критичны сообщения об ошибках (то есть достаточно сообщить, что например, логин заполнен неверно, не уточняя где именно ошибка), то проверку логина можно заменить одним выражением:
PHP:
скопировать код в буфер обмена
  1. if(!preg_match("/^[A-Za-z0-9\[\]_\-\(\)]{6,16}$/", $login))
  2. {
  3.    $error=true;
  4.    echo('Поле "логин" заполнено неверно');
  5. }


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
etoYA
Отправлено: 26 Октября, 2011 - 15:34:26
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Спасибо большое, уже красивее и удобней Радость
 
 Top
Данил_123
Отправлено: 26 Октября, 2011 - 15:40:14
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




В теме есть ответ, но все же выдвену свой вариант
PHP:
скопировать код в буфер обмена
  1. if(empty($login))  echo '<center><font color="red">Вы не ввели логин.</font></center>';
  2. elseif (!preg_match('/^[A-Za-z0-9\[\]_\-\(\)]+$/', $login)) echo "Логин содержит не допустимые символы"

(Отредактировано автором: 26 Октября, 2011 - 15:42:04)



-----
http://mysitecost.ru
 
 Top
Stierus Супермодератор
Отправлено: 26 Октября, 2011 - 16:49:48
Post Id



Рекордсмен по количеству сообщений за 7 дней


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


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




Я в сторонке постою и на комментарии посмотрю Улыбка
Прикреплено изображение (Нажмите для увеличения)
5995231324_8384690300_b.jpg
 
My status
 Top
Itan
Отправлено: 26 Октября, 2011 - 18:05:06
Post Id


Частый гость


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


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




На 63% огурец. Не 65. Закатив глазки
 
 Top
salim
Отправлено: 26 Октября, 2011 - 18:21:58
Post Id


Новичок


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


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




Беру первую и последнюю строку
PHP:
скопировать код в буфер обмена
  1. if (!$login) $S = 'Введите пароль';
  2. if ($courier != 170) $S ='Курьер тра-та-та';
  3.  
  4. if ($S)
  5. {
  6. echo $S; // возвращаем стоп-переменную
  7. exit; // выход
  8. }
  9. // продолжаем сценарий если нет СТОПа
  10.  

(Отредактировано автором: 26 Октября, 2011 - 18:23:03)

 
 Top
Itan
Отправлено: 26 Октября, 2011 - 18:34:42
Post Id


Частый гость


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


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




Вряд ли подойдет, потому что остаток шаблона тоже нужен, а после exit он не выводится.
 
 Top
salim
Отправлено: 26 Октября, 2011 - 18:40:47
Post Id


Новичок


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


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




Itan а Вы об этом и не писали, а какая проблема использовать Ваш шаблон до exit;
(Добавление)
а вобще сделайте себе СТОП-шаблон на эти случаи... для чего вам выводить весь HTML файл, когда можно обойтись одним красиво оформленным div-ом
 
 Top
Stierus Супермодератор
Отправлено: 26 Октября, 2011 - 20:35:50
Post Id



Рекордсмен по количеству сообщений за 7 дней


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


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




 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB