Я эту проблему решал через header location. Но там перебраска стоит в функцию, где отображаются все записи, поэтому писать "Ваше сообщение добавлено" не было не обходимости, и так увидит.
Обновляя страницу можно, но можно и заново писать, т.е. жать не рефлешь, а назад и Ок, назад и ОК. Эффект пачти тот же.
Поэтому тут лучше сделать перед записью в базу проверку на IP (естессно записывать IP каждого отправителя) или сделать запись в куки.
Тут в зависимости от того что отправляет пользователь и как часто ему разрешено это делать.
Комментарии сделаны так у меня:
//Запрашиваем из базы IP последнего отправителя для данной статьи
$result4 = $db->sql_query("SELECT sid, date, host_name FROM ".$prefix."_comments WHERE (sid='$sid') ORDER BY date DESC LIMIT 0,1");
$row4 = $db->sql_fetchrow($result4);
$sidf = intval($row4['sid']);
$datef = $row4['date'];
$ipf = $row4['host_name'];
$ip = $_SERVER["REMOTE_ADDR"];//определяем IP того кто отправляет сейчас
$post = time()-3600;//Уточняем время
$post2 = Date("Y-m-d H:i:s", $post);
if (($sidf=$sid) AND ($ipf=$ip) AND ($datef>$post2)) {
$result = 6;
$look1 = "Вы уже оставили комментарий к этой статье.";
}
Тоесть подрят нельзя отправить 2 комментария подрят. Можно спустя время, или после того, как то другой напишит комментарий.
Если нужно, чтобы всего 1 раз с этого IP отсылалось, то запросить в базу IP отправителя, и если там такое есть, то отказ.
Варианты, где можно посмотреть запись по кукам - Модуль опросов (точно незнаю) или рейтинг к статьям (тут точно есть).