[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с добавлением новых записей и обновлением
Svetlaya
В общем, вот как бы система комментирования к статьям

$q=mysql_query("SELECT * FROM comment WHERE id_post={$_REQUEST['id']}");
$num=mysql_num_rows($q);
if($num>0){
echo 'Комментариев '.$num;
while($res=mysql_fetch_array($q)){
echo $res['comment'].'<br/>';
}
}


else{
echo 'Комментариев нет';
}

if(isset($_SESSION['user'])){
echo $_SESSION['user']['name'].' , вы можете ставить свой комментарий<br/>';
echo '<form name="" method="POST" enctype="multipart/form-data">';
echo '<textarea name="comment" value="" rows=3 cols=40></textarea> <br/>';
echo '<input name="do" type="submit" value="Отправить"/>';
echo '</form>';
}

if($_POST['do'] !=='') {
$q1="SELECT * FROM `users` WHERE `name`='{$_SESSION['user']['name']}'";
$s=mysql_query($q1) or die(mysql_error());
$d=mysql_fetch_array($s);

$id_user=$d['id_user'];
$comment=$_POST['comment'];
$id_post=$_REQUEST['id'];

if(strlen($comment) !== 0){
$q3=mysql_query("INSERT INTO comment VALUES(NULL, '".$id_user."', '".$id_post."', '".$comment."')");
}
}


При обновлении страницы значение из поля Comment добавляется еще раз в БД, и так при каждом обновлении страницы. Как быть? Хочется чтобы при добавлении комментария страница обновилась, и больше мы к этомы комментарию не возвращались.



Спустя 1 минута, 16 секунд (19.01.2011 - 11:54) alex12060 написал(а):

$id_user=$d['id_user'];
$comment=$_POST['comment'];
$id_post=$_REQUEST['id'];


Я бы взломал твой сайт с такими данными)

Спустя 1 минута, 28 секунд (19.01.2011 - 11:56) alex12060 написал(а):

if(strlen($comment) !== 0){
$q3=mysql_query("INSERT INTO comment VALUES(NULL, '".$id_user."', '".$id_post."', '".$comment."')");

if ($q3 !== false) { echo '<script type="text/javascript">document.location.href="index.php"</script>'; }
}


Спустя 32 секунды (19.01.2011 - 11:56) Svetlaya написал(а):
Тогда посоветуйте как улучшить. Я открыта для критики и готова двигаться в сторону исправления ошибок.

Спустя 1 минута, 27 секунд (19.01.2011 - 11:58) Svetlaya написал(а):
alex12060, удобно ли будет пользователям, если после добавления их комментария, я их пошлю на главную?

Спустя 3 минуты, 54 секунды (19.01.2011 - 12:02) alex12060 написал(а):

<?php
$q=mysql_query("SELECT * FROM `comment` WHERE `id_post`={$_REQUEST['id']}");
if(mysql_num_rows($q)>0){
echo 'Комментариев '.$num;
while($res=mysql_fetch_array($q)){
echo $res['comment'].'<br />';
}
}
else{
echo '<b>Комментариев нет</b>';
}

if(isset($_SESSION['user'])){
echo $_SESSION['user']['name'].', Вы можете ставить свой комментарий<br />';
echo '<form name="" method="POST" enctype="multipart/form-data">';
echo '<textarea name="comment" value="" rows=3 cols=40></textarea> <br />';
echo '<input name="do" type="submit" value="Отправить" />';
echo '</form>';
}

if(!empty($_POST['do'])) {
$q1="SELECT * FROM `users` WHERE `name`='{$_SESSION['user']['name']}'";
$s=mysql_query($q1) or die(mysql_error());
$d=mysql_fetch_array($s);

$id_user=$d['id_user'];
$comment=mysql_real_escape_string(trim($_POST['comment']));
$id_post=mysql_real_escape_string($_REQUEST['id']);

if(strlen($comment) > 0){
$q3=mysql_query("INSERT INTO `comment` VALUES (NULL, '$id_user', '$id_post', '$comment')");
}
}


?>

Спустя 1 минута, 46 секунд (19.01.2011 - 12:03) blase написал(а):
не понял:
<input name="do" type="submit" value="Отправить"/>'
...
if($_POST['do'] !=='') {


?

Спустя 14 секунд (19.01.2011 - 12:04) alex12060 написал(а):
Цитата
alex12060, удобно ли будет пользователям, если после добавления их комментария, я их пошлю на главную?


Тогда не делай релоад, отсылай их туда, куда должны быть)
Точнее на эту же страницу с этим же ид

Спустя 2 минуты, 21 секунда (19.01.2011 - 12:06) alex12060 написал(а):

if(!empty($_POST['do'])) {


Не заметил что то)

Спустя 1 час, 28 минут, 24 секунды (19.01.2011 - 13:34) Svetlaya написал(а):
Чёй-то у меня ничего не выходит. Отправляет заново значение по многу раз и хоть ты тресни.

Спустя 1 час, 12 минут, 38 секунд (19.01.2011 - 14:47) alex12060 написал(а):
Я же говорю, сделай редирект)

Спустя 3 минуты, 35 секунд (19.01.2011 - 14:51) Svetlaya написал(а):
почему-то когда я делаю вот так
    if($q3!==FALSE) {
header("Location: http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);

}


мне пишут Cannot modify header information - headers already sent by

Спустя 27 минут, 27 секунд (19.01.2011 - 15:18) Svetlaya написал(а):
Благодаря чудесному мануалу товарища inposta, проблема была решена.
Спасибо всем кто не остался равнодушным.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.