кто мне обьяснит? я читал, конечно, мануал по англиски, но чесно гря ничего не понял. что именно мне хотелось бы узнать: if ($_POST['flag']==2) { header('Location: xxx.php'); $var=my_func($_POST['xxx1'], $_POST['xxx2'],$_POST['xxx3']); echo $var; } вопщем ничего у меня не выводица ((
header отправляет заголовки броузеру. Что означает заголовок "Location: xxx.php"? Или ты его бездумно откуда-то вставил?
вопщем отсюда я взял ) у меня перед приведенным кодом стоит проверка PHP: if (isset($_POST['flag'])) испльзуеца ли метод пост при ДАННОЙ загрузке... или так проверять незя?(всмысле штобы страница могла загружатся без повторной отправки данных
А почему exit не поставил? "Location: xxx.php" дает указание броузеру перейти на страницу xxx.php. Как только броузер получает такой заголовок, то сразу переходит на указаную страницу. Поэтому ничего не будет показано, что стоит после этого header. А чтобы скрипт не выполнялся без толку, нужно ставить exit.
И не выведется. Независимо от кода my_func. Передается заголовок Location - и сразу начинается переход на страницу xxx.php. В момент получения этого заголовка браузер перестает принимать поток от старой страницы и устремляется по Location.
А что делает exit? А вообще я писал и Горбунов Олег, почему у тебя ничего не будет выводиться. Sh0t, значение, возращаемой функцией my_func, здесь роли не играет
Мда... Аффтар, лучше объясни задачу, а то по твоему коду не понятно зачем у тебя стоит редирект а потом вывод данных...
<?php ... if (isset($_POST['flag'])) //вопщем если был запрос пост... (по моей //задумке, как это работает хз) { ... if ($_POST['flag']==2) /*если в данном запросе требуется изменить на странице что-то определенное со флагом 2*/ { $var=my_func($_POST['xxx1'], $_POST['xxx2'],$_POST['xxx3']); //присваеваем переменной результат выполнения функции header('Location: xxx.php'); //это мне сказали прописать чтобы не выскакивала табличка с //просьбой о повторной отправке данных exit; } unset($_POST['flag']); //указать что метод пост при обновлении не используецца(снова // по МОЕЙ задумке }; ... echo //далее непосредственно данные, которые вводит юзер //и флаг, показывающий что с этими данными делать "<form method=post action=xxx.php> ... <input type=hidden name=flag value=2> ... </form>"; ... ?> вот этот код. как мне зделать так чтобы переменной можно было присвоить значение, и приэтом при обновлении не выскакивал запрос на повторную отправку данных?
Все равно по не понял. Комментарии в код писать учили? Код форматировать учили? Задачу четко ставить - учили?
ничему не учили, я самоучка ) хм, забылсо ( блин, даже не знаю как сказть ещё... что мне охота иметь: 1. пользователь свободно загружает страницу 2. он может обновить страницу, чтобы узнать - изменилось ли на ней что-либо(благодаря кому-либо другому, например) 3. он может послать данные, тем самым сам изменив что-либо на странице.
Уточняющий комментарий - ты хочешь что бы пользователь обновлял страницу именно по F5 ? Или тебя естроит кнопочка на самой странице?
один из выходов - методом пост отправлять на другую страницу(2) с этой(1), а там уже через сессии передавать снова на (1)... правльно? но мне неохота в несколько шагов
ПОПРАВЬ МЕНЯ, ЕСЛИ НУЖНО: Тебе надо по получению данных, их обработать в PHP и повторно вывести форму на экран, так? И ты хочешь сделать это в одном скрипте - так? и что бы обновлялось без предупрежнения о повторной посылке данных? Тогда, вероятно, тебе нужно это: PHP: <?PHP if (isset($_POST['in'])) { // Если по POST пришли данные, то //userfunc ($_POST['v_1'],$_POST['v_2'],$_POST['v_3']); // Здесь ты сначала вызываешь нужные тебе функции обработки header ('Location: index.php'); // Послав заголовок, ты перенаправишь браузер на ту же страницу - автоматически потеряются POST данные exit; // Заканчивешь обработку, браузер тебя уже не слышит, он ушел на тот Location, что ты ему послал } // Если данные по POST не приходили - выведется формочка с этого самого места начиная - выводи скриптом что хочешь. ?> <form action="?" method="post"> Параметр, который будет передан методом POST:<br/> <input type="hidden" name="in" value="1"/><br/> <input type="text" name="post_value"/><br/> <input type="submit" value="Послать POST"/> </form>
а вот сматрите - !! я ввел некоторый текст в поле post_value и нажал "послать POST" !! и как мне зделать так чтобы после этого загрузилась этаже страница, но в которой уже в каком-либо месте написаны данные из post_value? как я понимаю эти данные надо где-нить сохранить... так? где луше всего это зделать?