Показать сообщение отдельно
Старый 22.08.2011, 13:29   #40
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: project-troll.co.cc

Обновление пофиксил. А вот redirect'а не сделал.
Объясню:

<?php
    /* check POST data if there is anything before <html> tag */
    if (!empty($_POST)) {
        /* if there is data, process it as needed */
        if (/* .. */) {    /* then if all data is validated and DB updated, process redirection */
            header("Location: http://.../"); /* redirection */
        }
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
    <head>
        ...
Вставил комменты, думаю понятно будет. В общем суть в том, чтобы у пользователя небыло страниц с какой-либо POST датой. Иначе будет на F5 ругаться, и если логически не учитывать это, то будет как было, жмёшь F5 и он снова применяет то же самое действие.
Зачем redirect тут, а потому что form'а POST'ит свои данные, и они идут до следующей страницы на которую указывает form'а. Если сделать redirect (header() тогда данные обнулятся.

Также, если уже нельзя давать экспу, не выводи form'у.

UDD1: Хм.. Я только что себе 230 экспы набил. Видимо баг..

UPD2: Таблицы, уже никто не использует, всё делается используя DIV и css флагами float и display. Это весьма важный момент если тебе важен опыт верстальщика..
(Offline)
 
Ответить с цитированием