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]   

> Описание: на php
vsll
Отправлено: 12 Марта, 2011 - 20:32:06
Post Id


Частый посетитель


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


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




Существует сообщение: "Введите текст для поиска."
Как сделать так, чтобы оно отображалось только тогда, когда пользователь отправит пустой поисковой запрос?
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbutton']) && $_GET['stext'] == "") {
  2.        echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }
  4.  


sbutton - id кнопки submit
stext - поисковая фраза из поля ввода поискового запроса

Я не претендую на то, чтобы код выглядел примерно так, что то неправильно с $_POST['sbutton'], тк если убрать isset($_POST['sbutton']) && то сообщение отображается всё время (кроме результатов поиска, ессно), а так оно вообще не отображается ни в каком случае

(Отредактировано автором: 12 Марта, 2011 - 21:23:27)

 
 Top
Дамир
Отправлено: 12 Марта, 2011 - 21:42:32
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2011  
Откуда: Туймазы, Россия


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




Могу предложить вот так:

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbutton']) && $_POST['stext'] == "") {
  2.        echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }
 
 Top
OrmaJever
Отправлено: 12 Марта, 2011 - 21:51:20
Post Id



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


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


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




Закатив глазки следуйщий пост будет "а что это значит" Закатив глазки
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbutton']) && !isset($_GET['stext']{0})) {
  2.        echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }


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


Частый посетитель


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


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




Дамир, OrmaJever не сработало

чтото с кнопкой не так, наверное

CODE (html):
скопировать код в буфер обмена
  1. echo "<form id='searchform' name='searchform' method='get' action='".FUSION_SELF."'>\n";
  2. echo "<table class='search' align='center'>\n";
  3. ...
  4. echo "<td class='w35_1' colspan='2'>&nbsp;&nbsp;&nbsp;<input type='text' name='stext' value='".urldecode($_GET['stext'])."' class='stextbox'/></td>\n";
  5. echo "<td class='w35_2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' id='sbutton' name='search' value='".$locale['402']."' class='sb' /></td>\n";


GET вместо POST подставляла, тоже не срабатывает
Цитата:
следуйщий пост будет "а что это значит"
Нет, ну интуитивно я, конечно догадываюсь...lol
 
 Top
OrmaJever
Отправлено: 12 Марта, 2011 - 22:12:54
Post Id



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


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


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




я у себя проверял и всё работает.
$text = '';
PHP:
скопировать код в буфер обмена
  1. if(!isset($text{0})) {
  2.        echo 1;
  3. }

(Добавление)
Vasiliya пишет:
value='".urldecode($_GET['stext'])."'

это называется здраствуй xss Подмигивание http://www.php.su/ htmlspecialchars()" target="_blank"> htmlspecialchars()


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


Частый посетитель


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


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




Не работает, 5 раз проверила!
Цитата:
это называется здраствуй xss Подмигивание htmlspecialchars()

// Prevent any possible XSS attacks via $_GET.
if (stripget($_GET)) {
die("Prevented a XSS attack through a GET variable!");
}
OrmaJever function stripget($check_url) - там немножко побольше накручено, и даже есть любимая функция Alena Подмигивание

(Отредактировано автором: 12 Марта, 2011 - 22:37:28)

 
 Top
SAD Модератор
Отправлено: 12 Марта, 2011 - 22:22:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




я думаю в гет должен параметр хоть какой то быть указан, например $_GET['text']
 
 Top
vsll
Отправлено: 12 Марта, 2011 - 22:25:34
Post Id


Частый посетитель


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


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




SAD пишет:
я думаю в гет должен параметр хоть какой то быть указан, например $_GET['text']

О нет, мой предпоследний ответ был на шутку от OrmaJever, у меня другая проблема, она указана в первом сообщении
 
 Top
Мелкий Супермодератор
Отправлено: 12 Марта, 2011 - 22:32:29
Post Id



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


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


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




Vasiliya пишет:
чтото с кнопкой не так, наверное

с ней, с ней. У вас форма передаётся GET. Ну и откуда тогда взяться хоть чему-то в $_POST?


-----
PostgreSQL DBA
 
 Top
Дамир
Отправлено: 12 Марта, 2011 - 22:37:49
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2011  
Откуда: Туймазы, Россия


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




Если взялись использовать метод GET, то будьте добры использовать его до конца. Мой пример был приведен для POST, т.к. вашего метода к тому времени я не видел
 
 Top
vsll
Отправлено: 12 Марта, 2011 - 22:38:32
Post Id


Частый посетитель


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


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




Мелкий пишет:
Vasiliya пишет:
чтото с кнопкой не так, наверное

с ней, с ней. У вас форма передаётся GET. Ну и откуда тогда взяться хоть чему-то в $_POST?
Пробовала, с GET уже, тоже ничего
 
 Top
Дамир
Отправлено: 12 Марта, 2011 - 22:46:27
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2011  
Откуда: Туймазы, Россия


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




Вот мой пример, полностью (извините, примитив), думаю что поможет:
PHP:
скопировать код в буфер обмена
  1. <form action='' method='GET'>
  2. <input type='text' name='stext'>
  3. <input type='submit' name='sbutton'>
  4. </form>
  5. <?PHP
  6. if (isset($_GET['sbutton']) && $_GET['stext'] == "") {
  7.        echo "Text message";
  8. }
  9. ?>

(Отредактировано автором: 12 Марта, 2011 - 22:49:14)

 
 Top
vsll
Отправлено: 12 Марта, 2011 - 22:54:59
Post Id


Частый посетитель


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


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




Дамир спасибо, если у меня stext - name, то и у кнопки тоже надо брать name, но у меня теперь другая проблема: Сообщение отображается даже тогда когда я только открываю поиск, даже так:
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['search']) && !isset($_GET['stext']{0})) {
  2.     echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }

Oops! нет всё работает, спасибо всем вы мне очень помогли!

OrmaJever А вы ещё и угадали мои мысли вперёд, на самом деле сообщение такое:
"Текст для поиска должен быть не менее 3-х символов." и ваш код очень пригодился:
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['search']) && !isset($_GET['stext']{2})) {
  2.     echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }

(Отредактировано автором: 12 Марта, 2011 - 23:04:13)

 
 Top
OrmaJever
Отправлено: 12 Марта, 2011 - 23:47:42
Post Id



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


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


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




Вот так вот бывает...
Vasiliya пишет:
Дамир, OrmaJever не сработало
Vasiliya пишет:
Не работает, 5 раз проверила!
Vasiliya пишет:
Пробовала, с GET уже, тоже ничего
Vasiliya пишет:
Oops! нет всё работает, спасибо всем вы мне очень помогли!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Дамир
Отправлено: 13 Марта, 2011 - 08:30:38
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2011  
Откуда: Туймазы, Россия


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




Улыбка

(Отредактировано автором: 13 Марта, 2011 - 08:32:38)

 
 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