|
|
|
|
|
для: AVS
(23.06.2008 в 23:06)
| | Сразу вписывать было нечего, все варианты, которые предлагались я добросовестно проверял. Моего скудного умишки нехватило додуматься использовать "идентефикатор" в качестве дополнительного параметра. Вам смешно, но все кагда-то начинали.
Еще раз спасибо, давайте закроем тему. | |
|
|
|
|
|
|
|
для: Николай2357
(23.06.2008 в 22:18)
| | Надо было сразу вписать это в свой код и проверить как будет работать, а не писать все время про "одну страницу". | |
|
|
|
|
|
|
|
для: Trianon
(23.06.2008 в 16:37)
| | Вот Вам огромное спасибо, натыкали носом, отправили на луну.
И все таки хидер.
Я же знал, все просто, а топик из-за флуда раздули огогого!
Я же только учусь, чего меня в этом упрекать, всего одна строчка
header("Location: ".$SERVER['PHP_SELF']."?aname=$aname");
и вопрос снят.
Еще раз всем огромное спасибо за участие. | |
|
|
|
|
|
|
|
для: Николай2357
(23.06.2008 в 16:39)
| | Чуть ниже Trianon написал - никто не запрещает в хидере указать анкер, не один JS имеет такую возможность. Вам просто нужно выстроить свой код так, чтобы он разделялся на четыре части:
1. Инициализация всех переменных, которые будут участвовать в обработке формы, для того, чтобы при ошибках выдавать пользователю уже введенное им.
2. Вывод вашей разукрашенной странички по анкеру, если был переход и остановка скрипта.
3. Проверка полученных данных из формы - если ошибки, устанавливаем код ошибки, иначе делаем необходимые операции над данными и переход на себя.
4. Вывод формы при ошибках и отсутствии перехода (по умолчанию).
Можно поступить немного иначе. Не передавать имя или еще что-то иное в хидере, кроме как анкера, а все остальное сессией. Эта установка в сессии, может служить признаком, что прием прошел на ОК, и данному юзеру уже ни за что опять не открыть форму (или только по истечении некоего времени (антифлуд)). | |
|
|
|
|
|
|
|
для: Николай2357
(23.06.2008 в 16:39)
| | >Хочу на луну!
Неубедительно ("Плохо просите"...) | |
|
|
|
|
|
|
|
для: AVS
(23.06.2008 в 16:05)
| | Хочу на луну! Скажите мне ктонибудь, что я дурак, и ничего не понимаю ни в PHP, ни в жизни. Только аргументировано.
Проблема то вот в чем, если все нормально, форма прошла, то к сообщению в файл .dat добавляется уникальный, разовый анкер с id= ... date("U"), div - у присваивается тоже разовый id=...d_date("U"), в скрипт "наехивается" id анкера, а в стили id div-а с просьбой раскрасит буквы в красный цвет. В результате юзер после отправки формы видит свои каракули красным цветом и сразу, без перемотки страницы вниз. Это разовая процедура, следующий раз прежнее сообщение будет череньким.
Самое смешное, что все это работает. Только если обновить... я уже писал.
Если сделать переадресацию кудабы то нибыло, весь смак этой процедуры пропадает.
И еще раз напомню, по ряду причин нужна одна страничка, со скриптом и выводом.
Вот.
Спасибо за внимание. | |
|
|
|
|
|
|
|
для: Николай2357
(23.06.2008 в 12:13)
| | Очень грубо - примерно так:
<?php
if(!isset($_GET['aname'])
{
$aname=$col=date("U");
....Ваш код до
//А вот почему нельзя редерикт,
header("Location: ".$SERVER['PHP_SELF']."?aname=$aname");
exit();
}
else $aname = $col = intval($_GET['aname']);
...Ваш код после
// ..хочется красиво
?>
|
В локейшене можете свой анкер добавить, кстати.... | |
|
|
|
|
|
|
|
для: Николай2357
(23.06.2008 в 15:17)
| | Ну что обижаться? Вам сколько раз говорили, что проблему F5 решит переход - хотите одной страницей все, да нет проблем, делайте внутри страницы переход. Вы ведь сами уперлись, что вам не подходит header() (а можно и метатегом). Причем объясняете это некой проблемой. Ну тогда объясните в чем она состоит, лично я не вижу в вашем коде, по крайней мере в части его представленной, того, что было бы проблемой для использования в нем хидера.
Как вам советовать, если вы отметаете разумное, ведь вы с помощью этого JS сценария пытаетесь сделать тот же самый эквивалент хидера. Но суть то не в самом переходе, а в условиях обуславливающих его и последствиях перехода. | |
|
|
|
|
|
|
|
для: Николай2357
(23.06.2008 в 15:17)
| | Коля, иди на Луну. ))) Тебе же сказали:
<?php
if (форма добавлена в базу) {
header('Location: '.$_SERVER['PHP_SELF'].'?rnd='.time());
}
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(23.06.2008 в 14:34)
| | Я уже писал, что далек от совершенста, поэтому и задаю "глупые" вопросы на форумах, ведь помоему они для этого и сделаны.
А вовсе не для того, чтобы тыкать носом в ребусы "у вас ничего сверхестественного".
Не хотите вникать, ладно, я все равно решу эту проблему с Вашей помощью или без.
Я не изобретаю велосипед, а хочу сделать маленький самокатик, желательно своими руками, и если что то не получается, прошу совета, помоему это нормально.
Можно написать супер пупер мега класс, прикрутить туда регулярку, сессии и бог весть знает что, а можно решить одной функцией или выражением. Если нельзя, так и скажите, я вот, к примеру, не понимаю, как в этом случае осуществить переход внутри страницы.
PS. location.href = location.href.replace(/#.*$/,"")+"#<? echo $aname; ?>" мне посоветовали на другом форумe http://forum.htmlbook.ru/viewtopic.php?id=9264 люди, которые в отличии от Вас всетаки вникают в проблему, прежде чем давать "совет". | |
|
|
|
|