| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > гостевуха на одну страницу |
| Автор: JORDAN 1.5.2008, 19:14 |
| Сразу говорю - я только учусь, так что ногами не бить. Сканировал форум часа три, думал найти ответ сам... Короче идея простая: пишу гостевуху одним файлом, без БД. Проблема - вывести что-то вроде "Сообщение добавлено", а потом переадресовать на главную (ну с 2-хсекундной задержкой скажем). Но до header ничего выводить нельзя. Поэтому пока остановился на die("<script language='JavaScript'>window.location='index.php'</script>"); но сообщения так не выведешь, т.к. сразу вылетаю на index.php. Заранее благодарю за дельные советы. |
| Автор: Feldmarschall 1.5.2008, 19:20 |
| Ну, во-первых, все поголовно гостевые после добавления выводят не на главную, а на список сообщений. И человек видит свое сообщение - то есть, ему не нужно писать бессмысленных, по сути, фраз. Это я считаю наиболее адекватным решением. а в яваскрипте есть средства задержки выполнения скрипта. |
| Автор: JORDAN 1.5.2008, 20:12 |
| Спасибо за критику конечно. Но по делу ничего конкретного. Главная и имелась ввиду главная гостевой со списком сообщений.О бессмысленности данной задачи позволь мне самому решать. И просьба у кого нет конкретных предложений - ну не тратьте свое и мое время на всякий флуд. Если есть средства - то какие, а так... И интересно было бы решение чисто на пхп. Хотя и java тоже пишите (просто с java мало знаком). |
| Автор: Feldmarschall 1.5.2008, 20:29 |
| Жесть. Кто-нибудь ещё здесь критику видит? =) Добавлено через 4 минуты и 23 секунды JORDAN, если хочется критики, то в качестве совета: мне кажется, что брать такой капризный тон с первых же сообщений на форуме - не лучшая идея. |
| Автор: Fortop 1.5.2008, 20:44 |
| JORDAN, Тебе нужен переход на другую страницу через несколько секунд? А по темам ты внимательно искал? http://forum.vingrad.ru/forum/topic-188801/unread-1/hl/refresh/index.html |
| Автор: Azalis 1.5.2008, 20:45 | ||
| Вопрос вообще говоря не по адресу, так как его скорее в JS нада... А ответ примерно такой:
Где: {LOCATION} - Путь куда нада переносить {TIMER} - Время через которое переносить |
| Автор: JORDAN 2.5.2008, 09:41 |
| Благодарю за ваши ответы. Feldmarschall, извини за тон, не хотел обидеть. |
| Автор: Feldmarschall 2.5.2008, 09:52 |
| Вообще-то, обидеть меня - задача не самая тривиальная ;-) Добавлено через 4 минуты и 24 секунды Недостаток всех методов с задержкой состоит в том, что они не выполняют главную функцию редиректа - защиту от повторного сабмита. То есть, по-хорошему, надо сначала делать редирект нормальным локейшеном, который уже, при желании, может вести на страницу с двухсекундным сообщением. |
| Автор: JORDAN 2.5.2008, 11:53 |
| Если можно, то на примере покажи. И можно ли такое сделать в одном файле? В принципе для меня не так важно сколько файлов, но если можно одним без особых ухищрений и извращений то хотелось бы освоить. А с location я не раздуплил как сделать. Ведь перед ним ничего нельзя выводить (типа Сообщение добавлено успешно). Выше приведенные методы кстати работали как-то криво. Основная идея была, чтобы форма пропадала после ввода данных, и выводилась надпись "". Так вот при использовании <script language="javascript" type="text/javascript"> setInterval("top.location.href='{LOCATION}'",{TIMER}); </script> просто была задержка, а переадресации вообще не было. То же с МЕТА. Нашел такую фишку <script language='Javascript'>function reload() {location = 'index.php'}; setTimeout('reload()', 1500);</script> переадресацию делает, но форма остается, а надпись выскакивает ниже формы. Выходит проще всего обработчик вынести в отдельный файл... |
| Автор: Feldmarschall 2.5.2008, 12:13 |
| Непонятно, какие претензии к форме и надписи. они выводятся там, где ты их сам выводишь. если надпись выводится ниже формы - значит, в твоем скрипте она прописана ниже формы. тебе нужен дядя с форума, чтобы подсказать поменять их местами? чтобы ничего не не выводилось после надписи, есть оператор exit |
| Автор: NNaarreekk 2.5.2008, 13:55 | ||
Вот так тоже красиво получается
Я лично так делаю! |