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
Форумы портала PHP.SU :: Версия для печати :: Отобразить сообщение об ошибке
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Отобразить сообщение об ошибке

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

1. vsll - 12 Марта, 2011 - 20:32:06 - перейти к сообщению
Существует сообщение: "Введите текст для поиска."
Как сделать так, чтобы оно отображалось только тогда, когда пользователь отправит пустой поисковой запрос?
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']) && то сообщение отображается всё время (кроме результатов поиска, ессно), а так оно вообще не отображается ни в каком случае
2. Дамир - 12 Марта, 2011 - 21:42:32 - перейти к сообщению
Могу предложить вот так:

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbutton']) && $_POST['stext'] == "") {
  2.        echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }
3. OrmaJever - 12 Марта, 2011 - 21:51:20 - перейти к сообщению
Закатив глазки следуйщий пост будет "а что это значит" Закатив глазки
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['sbutton']) && !isset($_GET['stext']{0})) {
  2.        echo "<div class='admin-message'>".$locale['501']."</div>\n";
  3. }
4. vsll - 12 Марта, 2011 - 22:07:16 - перейти к сообщению
Дамир, 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
5. OrmaJever - 12 Марта, 2011 - 22:12:54 - перейти к сообщению
я у себя проверял и всё работает.
$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()
6. vsll - 12 Марта, 2011 - 22:17:54 - перейти к сообщению
Не работает, 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 Подмигивание
7. SAD - 12 Марта, 2011 - 22:22:47 - перейти к сообщению
я думаю в гет должен параметр хоть какой то быть указан, например $_GET['text']
8. vsll - 12 Марта, 2011 - 22:25:34 - перейти к сообщению
SAD пишет:
я думаю в гет должен параметр хоть какой то быть указан, например $_GET['text']

О нет, мой предпоследний ответ был на шутку от OrmaJever, у меня другая проблема, она указана в первом сообщении
9. Мелкий - 12 Марта, 2011 - 22:32:29 - перейти к сообщению
Vasiliya пишет:
чтото с кнопкой не так, наверное

с ней, с ней. У вас форма передаётся GET. Ну и откуда тогда взяться хоть чему-то в $_POST?
10. Дамир - 12 Марта, 2011 - 22:37:49 - перейти к сообщению
Если взялись использовать метод GET, то будьте добры использовать его до конца. Мой пример был приведен для POST, т.к. вашего метода к тому времени я не видел
11. vsll - 12 Марта, 2011 - 22:38:32 - перейти к сообщению
Мелкий пишет:
Vasiliya пишет:
чтото с кнопкой не так, наверное

с ней, с ней. У вас форма передаётся GET. Ну и откуда тогда взяться хоть чему-то в $_POST?
Пробовала, с GET уже, тоже ничего
12. Дамир - 12 Марта, 2011 - 22:46:27 - перейти к сообщению
Вот мой пример, полностью (извините, примитив), думаю что поможет:
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. ?>
13. vsll - 12 Марта, 2011 - 22:54:59 - перейти к сообщению
Дамир спасибо, если у меня 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. }
14. OrmaJever - 12 Марта, 2011 - 23:47:42 - перейти к сообщению
Вот так вот бывает...
Vasiliya пишет:
Дамир, OrmaJever не сработало
Vasiliya пишет:
Не работает, 5 раз проверила!
Vasiliya пишет:
Пробовала, с GET уже, тоже ничего
Vasiliya пишет:
Oops! нет всё работает, спасибо всем вы мне очень помогли!
15. Дамир - 13 Марта, 2011 - 08:30:38 - перейти к сообщению
Улыбка

 

Powered by ExBB FM 1.0 RC1