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]   

> Без описания
teddy
Отправлено: 01 Мая, 2013 - 14:51:43
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


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




Добрый день. Хочу написать функцию фильтрации данных, но столкнулся со следующей проблемой: Если попадаем в нужный кейс с определенной ошибкой, то не могу вывести ошибку в нужном для меня месте. Вот код - далее объясню что и как я делаю
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_POST['submit'])){
  3. $error_login = "";
  4. function clearData($data,$type="login") {
  5.         switch($type){
  6. case "login": if(strlen($data)<3 or strlen($data)>8){
  7.                         global $error_login;
  8.                         $error_login = "Некорректный логин";
  9.                        
  10.                         return $data;
  11.                         }
  12. }
  13.  
  14. }
  15. $login = clearData($_POST['login'],"login");
  16. }
  17. ?>
  18. <pre>
  19. <form action="clearData.php" method="post">
  20. Login: <input type='text' name='login'>
  21. Passw: <input type='text' name='password'>
  22. <input type='submit' name='submit'>
  23. </pre>
  24. <?PHP
  25. if(isset($error_login)){echo $error_login;}
  26. ?>


Если вместо global использовать return, то он возвращает ошибку. А мне нужно что бы не где то наверху появлялось уведомление об ошибке, а под каждым полем. Соответственно я проверяю переменную на isset, и если попали в кейс, значит ошибка должна показаться в нужном для меня месте, а именно там, где она проверяется на isset. А у меня на isset не проверяется, хотя попадаем в этот кейс с ошибкой. static тоже использовал, не помогает... Подскажите пожалуйста как можно это реализовать? В чем моя ошибка?

(Отредактировано автором: 01 Мая, 2013 - 16:18:42)

 
 Top
DelphinPRO
Отправлено: 01 Мая, 2013 - 15:22:33
Post Id



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


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


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




teddy пишет:
Если вместо global использовать return, то он возвращает ошибку.
teddy пишет:
static тоже использовал, не помогает...
От балды чтоли языковые конструкции вставляешь? авось, повезет Улыбка

вариант: сделай массив. В него добавляй ошибки. Если он пуст - ошибок нет. Если не пуст - выводи все ошибки там где тебе удобно.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
OrmaJever Модератор
Отправлено: 01 Мая, 2013 - 15:34:24
Post Id



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


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


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




Учитывая что функция ничего интересного не возвращает то можно возвращать ошибки.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
teddy
Отправлено: 01 Мая, 2013 - 16:14:16
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


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




DelphinPRO
Сделать массив можно, но меня интересует именно вариант с функцией через свитч
(Добавление)
Хех, пофиксил... все работает так как я хотел и без массива )

(Отредактировано автором: 01 Мая, 2013 - 16:15:15)

 
 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