Как удалить метод POST

Статус
В этой теме нельзя размещать новые ответы.
В данный момент в моём скрипте после нажатия кнопки обновления страници данные повторно добавляются в БД.
Еще раз почитать, что тебе насоветовали и сделать
 
Я сделал так:
PHP:
if (!($_POST)) 
{ 
Форма для ввода данных 
} 
else 
{
if($_SERVER['REQUEST_METHOD']=='POST'){
Скрипт добавления данных в БД ;
header("Location: urpage.php");
;}
}

Выдаёт ошибку:
Код:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\beauty\guest_book.php:12) in Z:\home\localhost\www\beauty\guest_book.php on line 205
 
205-ю строку кода покажи, у тебя хеадер объявляется дважды судя по всему
 
Это означает что вывод был ДО header и его не должно быть. глянь пост про шаблоны в этой теме
 
для начала не много научись отделять вывод HTML и PHP иначе функция header не будет корректно работать (кроме случая использования ob_*())
Обычно это так (простейший вариант:(
PHP:
$str = '';
$str.= 'here text';
$sql = 'here sql query';
$str.= 'here another text';
// и тогда уже в конце кода
echo $str;// выведет все собранное
В твоем случае после добавления записи лучше сделать чуть иначе:
PHP:
  $err = 1;
  $result = mysql_query ("INSERT INTO guest (date,time,dat,status,name,text)  VALUES ('$date','$time','$dat','$status','$name','$text')"); 
  if ($result == 'true')  { 
    $err = 0;
  }else {
    $err = 2;
  }
  header("Location:index.php?err=".$err."&time=".time());
  exit;
и далее в начале кода обрабатываем переменную $_GET['err']
PHP:
switch(intval($_GET['err']) {
  case 0:
    echo 'ok';
  break;
  case 1:
    echo 'error other';
  break;
  case 2:
    echo 'error Insert';
  break;
  default:
    echo 'other error';
  break;
}


Куда вот этот код ставить

PHP:
 switch(intval($_GET['err']) { 
  case 0: 
    echo 'ok'; 
  break; 
  case 1: 
    echo 'error other'; 
  break; 
  case 2: 
    echo 'error Insert'; 
  break; 
  default: 
    echo 'other error'; 
  break;
 
PHP:
<?php

switch($n) { 
case"sav":

if (empty($_POST['name']) && empty($_POST['status']) && empty($_POST['text'])) 
{
}else{
 header("Location: urpage.php");
exit;
}
// обрабатывае пришедшие данные перед вставкой в таблицу БД 
    $date = date ("Y-m-d"); 
    $dat = date ("d.m.Y"); 
    $time = date("H:i:s"); 
    if (isset($_POST['name'])){$name = $_POST['name'];} 
    if (isset($_POST['status'])){$status = $_POST['status'];} 
    if (isset($_POST['text'])){$text = $_POST['text'];} 
    #удаляем из текста различные слеши, скобки, кавычки; 
$name = stripslashes($name); 
#Защищаем от ввода различных тегов и скриптов;  
$name = htmlspecialchars($name); 
    // проверяем на наличие ошибок (например, длина имени) 
    $error = false; 
    $errort = ''; 
    if (strlen($name) == '') 
    { 
        $error = true; 
        $errort .= 'Вы не ввели своё имя.<br>'; 
    } 
    if (strlen($status) == '') 
    { 
        $error = true; 
        $errort .= 'Вы не выбрали кем вы являетесь.<br>'; 
    } 
    if (strlen($text) == '') 
    { 
        $error = true; 
        $errort .= 'Вы не ввели текст отзыва.<br>'; 
    } 

// если ошибок нет, то добавляем данные о юзере в таблицу 
if(!$error) 
{ 
     

  $result = mysql_query ("INSERT INTO guest (date,time,dat,status,name,text)  VALUES ('$date','$time','$dat','$status','$name','$text')"); 
  if ($result == 'true')  
  { 
  header("Location: urpage.php");
   echo "<p align='center'><h2 align='center'>Ваш отзыв успешо добывлен!</h2></p>"; 
  } 
   else {echo "<table bgcolor='#666666' width='700' align='center'><tr><td><p><h3 align='center' style='color:red;'>Ваш отзыв не добавлен, по техническим причинам, попробуйте позже!</h3></p></td></tr></table> 
      <br> 
";} 
  } 
else 
{ 
print '<h3 style="color:#FF0000" align="center">Возникли следующие ошибки:</h3><p style="color:#FF0000" align="center">' . $errort.'</p><br>'; 

// Проверяем статус выбранный пользователем, определяем его и автоматом выводим 
if($status == '') 
{ 
 $stat = selected; 
} 
else 
{ 
  if($status == '1') 
  { 
   $stat1 = selected; 
  } 
  else 
  { 
    if($status == '2') 
    { 
     $stat2 = selected; 
    } 
    else 
    { 
      if($status == '3') 
      { 
       $stat3 = selected; 
      } 
    } 
  } 
} 
?> 
<table width="730" align="center"><tr><td> 
 <form name="form1" method="post" action="guest_book.php" > 
          <table><tr><td align="right"> 
          <p class="text"><span style="color:#FF0000">*</span>Ваше имя:</p> 
          </td> 
          <td> 
          <label> 
          <input type="text" name="name" class="form_text" style="width:250px" value="<?php echo $name; ?>"> 
          </label> 
          </td></tr> 
          <tr><td></td><td></td></tr><tr><td></td><td></td></tr> 
          <tr><td align="right"> 
          <p class="text"><span style="color:#FF0000">*</span>Кем вы являетесь:</p> 
          </td> 
          <td> 
          <label> 
          <select name="status" class="form_text" style="width:250px"> 
                    <option <?php echo $stat; ?>></option> 
                    <option <?php echo $stat1; ?> value="1">Гость</option> 
                    <option <?php echo $stat2; ?> value="2">Клиент</option> 
                    <option <?php echo $stat3; ?> value="3">Постоянный клиент</option> 
                    </select> 
          </label> 
          </td></tr> 
          <tr><td></td><td></td></tr><tr><td></td><td></td></tr> 
          <tr><td align="right" valign="top">  
          <p class="text"><span style="color:#FF0000">*</span>Текст отзыва:</p> 
          </td> 
          <td> 
          <textarea  type="text" name="text" class="form_text" style=" width:500px; height:150px"><?php echo $text; ?></textarea> 
          </td></tr> 
          <tr> 
          <td></td><td> 
           <label> 
          <input type="submit" name="submit" class="button" id="submit" style=" width:75px;" value="Отправить" > 
          </label> 
          <p class="text" style="margin-left:0">Поля, помеченные <strong><span style="color:#FF0000">*</span></strong>, обязательные для заполнения!</p> 
          </td></tr> 
         </table> 
      </form> 
</td></tr></table> 
<?php  
} 
break;
default;
?> 

<p align="center"><strong class="style_header_text" style="font-size:18px;">Форма для добавления отзыва:</strong></p> 
<table width="730" align="center"><tr><td> 
     <form name="form1" method="post" action="?n=sav"> 
          <table><tr><td align="right"> 
          <p class="text"><span style="color:#FF0000">*</span>Ваше имя:</p> 
          </td> 
          <td> 
          <label> 
          <input type="text" name="name" class="form_text" style="width:250px"> 
          </label> 
          </td></tr> 
          <tr><td></td><td></td></tr><tr><td></td><td></td></tr> 
          <tr><td align="right"> 
          <p class="text"><span style="color:#FF0000">*</span>Кем вы являетесь:</p> 
          </td> 
          <td> 
          <label> 
          <select name="status" class="form_text" style="width:250px"> 
                    <option></option> 
                    <option value="1">Гость</option> 
                    <option value="2">Клиент</option> 
                    <option value="3">Постоянный клиент</option> 
                    </select> 
          </label> 
          </td></tr> 
          <tr><td></td><td></td></tr><tr><td></td><td></td></tr> 
          <tr><td align="right" valign="top">  
          <p class="text"><span style="color:#FF0000">*</span>Текст отзыва:</p> 
          </td> 
          <td> 
          <textarea  type="text" name="text" class="form_text" style=" width:500px; height:150px"></textarea> 
          </td></tr> 
          <tr> 
          <td></td><td> 
           <label> 
          <input type="submit" name="submit" class="button" id="submit" style=" width:75px;" value="Отправить" > 
          </label> 
          <p class="text" style="margin-left:0">Поля, помеченные <strong><span style="color:#FF0000">*</span></strong>, обязательные для заполнения!</p> 
          </td></tr> 
         </table> 
      </form> 
</td></tr></table> 

<? 


break;
}


?>
 
Ели осилил.
И форма и её обработка в одном файле - это бред и быдлокод.

Разнеси её по разным файлам и твоя проблема исчезнет.
 
Ели осилил.
И форма и её обработка в одном файле - это бред и быдлокод.
Разнеси её по разным файлам и твоя проблема исчезнет.

Хочется сделать в одном файле так удобнее, но сложнее.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху