| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > не могу дописать условие |
| Автор: knut 12.3.2008, 10:25 | ||||
| добрый день. ситуация сслед. есть один обший .php файл(test.php) а на нем батон сабмит. и двa button a
и две функции
так проблема у меня в том что у меня у меня функция addtodatabase вызовается и при нажатие на баттон и при рефреше. как сделать так чтоб он вызовался толко при нажатие на button p.s если я с названием темы ляпнул сорри |
| Автор: Feldmarschall 12.3.2008, 10:49 | ||
непонятно только, зачем оборачивать в функцию код, который выполняется ровно 1 раз |
| Автор: comcon1 12.3.2008, 11:14 |
| а в чОм проблема проверить, какую кнопку сабмитит?? |
| Автор: vintyara 12.3.2008, 11:32 |
| один из вариантов - 1. нажали на кнопку 2. страница перегрузилась и начался выполнятся пхп код. вот тут, после выполнения того что нам нада, в конце добавить редирект еще один (через тот же header("Location: куданада");). тогда небужет проблемы с рефрешем и повторной отправки данных. |
| Автор: knut 12.3.2008, 12:06 | ||||
comcon1,
проблема в том как сделать так чтоб функция addtodatabase если рефреш не выполнялас a толко при нажатие на баттон. Feldmarschall, вот такой варрнинг получил
вопрос вот при наличие такого иф а if($_SERVER['REQUEST_METHOD']=='POST') рефреш не удовлетворяет этому иф у? у меня функция addtodatabase вызовется даже тогда если был рефреш |
| Автор: comcon1 12.3.2008, 12:19 | ||
если ты не выведешь в HTML ни одного символа до выполнения header, даже пробел, то варнинг исчезнет. Попробуй. |
| Автор: knut 13.3.2008, 12:59 | ||
| comcon1, решил проблему буферизацией таким способом (хотел бы услышать от вас коментарии по этому методу чвляется ли он хорошым решениям)
толко осталась одна мальенкая проблема как мне узнать был нажат add или remove? |
| Автор: Feldmarschall 13.3.2008, 13:19 |
| knut, решение с буферизацией является просто ненужным. Скорее всего, функция addtodatabase что-то выводит. но пользователь все равно этого не увидит. поэтому и выводить ничего не нужно. а если ничего не выводить, то и ошибка не появится. |
| Автор: comcon1 13.3.2008, 13:53 |
| ob_start и ob_end_flush - стандартное решение для таких случаев. Но если можешь избавиться от выводов лишних пробелов - то это лучше. У меня иногда бывал такой косяк. Я редактирую PHP в ultraedit-е (когда я в винде), так вот когда кодировка у меня UTF - он вставляет какие=то невидимые метасимволы в начало файла - вываливается твоя ошибка. Переводишь UTF->ASCII - метасимволы исчезают вместе с ошибкой. |
| Автор: knut 13.3.2008, 14:47 | ||||
| ksnk, я так и зделал.
и после этого
но не работает |
| Автор: Canarat 13.3.2008, 15:20 | ||
Нет такого суперглобального массива, есть $_POST |
| Автор: knut 13.3.2008, 15:57 | ||
тот же результат _POST['name'] пустой |
| Автор: Canarat 13.3.2008, 16:01 | ||||
У тебя другое.
|