| |
|
|
| | Ввожу в переменную информацию вот таким образом:
<form method="post">
<input type="text" name="poisk" size="25">
<input type="submit" value="Найти!">
</form>
<?php
$poisk = $_POST['poisk'];
if (!$poisk) exit ('Пустой запрос');
echo $poisk ;
|
Что не нравится:
1. При запуске скрипта, когда на кнопку "Найти" еще не нажимали, уже появляется сообщение "Пустой запрос". Хотелось бы этого избежать.
2. Наличие оператора exit приводит к тому, что не загружается графика, коды которой расположены вне этого скрипта (ниже по странице сайта).
3. Если ввести фразу, то она нормально выводится на экран. Но если если выполнить на странице сайта, в состав которого входит этот код, какое-то другое действие, или нажать кнопку "обновить страницу", то выводится опять та же фраза, хотя её уже не вводили. Хотелось бы и от этого избавиться. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 13:52)
| | | 1. Так правильно и будет потомучто условие if (!$poisk) exit ('Пустой запрос');
выполняется. $poisk то неопределена
2. Оператор exit останавливает работу скрипта и все что ниже него выводиться не будет
3. Переделка скрипта в нормальный рабочий вид | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 13:52)
| | | Я понимаю, что все операторы работают правильно, но меня интересует, как избавиться от трех обозначенных проблем? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 15:05)
| | | 1, 2. if (isset($_POST['poisk'])) { } else { }
3. браузер при ф5 заново шлет запрос сам | |
| |
|
|
| |
|
|
| |
для: bronenos
(11.07.2007 в 15:28)
| | | Поставил вот такой код для пробы:
<form method="post">
<input type="text" name="poisk" size="25">
<input type="submit" value="Найти!">
</form>
<?php
$poisk = $_POST['poisk'];
if (isset($_POST['poisk']))
{
echo "Ввод произошел. Введено: " ;
echo $poisk ;
}
else
{
echo "Здесь будут операции, выполняемые при остуствии ввода" ;
}
|
Первые два вопроса ушли.
Если запустить новое окно броузера и в нем вызвать страницу скрипта, то все прекрасно - никаких лишних записей не выходит. Но если ввести информацию хоть один раз, то она кешируется в броузере навечно! Я могу даже перейти по какой-нибудь ссылке на сайте на другой адрес, но при возврате обратно вышеприведенный код выдаст результат предыдущего ввода!
Полазив по Форуму поиском, я уже понял, что для избавления от этого надо запретить броузеру записать старый запрос в историю запросов (Trianon). Но мои попытки это сделать не увенчались успехом!
Что бы такое вставить в вышеприведенный код, чтобы избавиться от выводов результатов предыдущего поиска? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 16:26)
| | | запрещать кеширование в смысле как? | |
| |
|
|
| |
|
|
| |
для: bronenos
(11.07.2007 в 16:30)
| | | Это вопрос, скорее, к : Trianon (05.06.2007 в 21:11) http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=38675
Но что-то же сделать можно? Странная какая-то заморочка...
Представляете, у меня это форма поиска, и получается, что при движении по сайту и возврату к главной странице поиск сам по себе начинается заново, выталкивая груду уже ненужной информации и загромождая весь экран! Мне это просто не годится! Да и не должно так быть - у других же работает как надо!
Как другие избавляются от повторной передачи формы броузером? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 16:44)
| | | Похоже, что единственный выход - это безусловный переход на другую страницу-пустышку, и затем возврат на главную таким же путем. Иначе - никак... | |
| |
|
|
| |
|
|
| |
для: Владимир55
(11.07.2007 в 17:18)
| | | Как оказалось при ближайшем рассмотрении, и у других такая же фигня http://www.sitemanager.ru/ | |
| |
|
|