при връщане назад да не записва

IzKuFeLiQqQqQ

Registered
Здравейте имам едно проблемче имам една форма и давам submit то си записва влизам някъде после връщам назад и то ме пита дали да повтори действието и то пак записва тааа как да го напрая да се връща без да записва пробвах с mysql_close(query); но не стана

ето кода
Код:
<form method="post">
Категория: <select name="m_cat">
<?php include ('../files/config.php');
$insert=mysql_query("SELECT * FROM `music_cats`") or die(mysql_error()); while($ins=mysql_fetch_array($insert)) {
echo"<option value='".$ins['mcat_id']."'>".$ins['mcat_name']."</option>\n";
}?></select><br>
Име:<br><input type="text" name="m_name"  size="35"/><br>
Линк за гледане/теглене:<br><input type="text" size="40" name="m_download" /><br>
<input type="submit" name="submit" value="Добави"/>
</form>
<?php 
if (isset($_POST['submit'])){
$m_name = htmlspecialchars($_POST['m_name']);
$m_download = htmlspecialchars($_POST['m_download']);
$m_cat = htmlspecialchars($_POST['m_cat']);
$m_date = date("d.m.y / H:i"); 
$query = mysql_query("INSERT INTO `music` (`m_name`,`m_download`,`m_date`,`m_cat`,`m_u_id`,`m_active`) VALUES ('$m_name','$m_download','$m_date','$m_cat','$my_id','yes');") or die(mysql_error()); 
if($query == true){echo "Успешно добавихте песента!";}
else {echo "Песента не беше добавена!";}
@mysql_close($query);
}
?>

дайте някво решение...

бтв пред mysql_close съм сложил @ щото иначе излиза
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/sunnybgi/public_html/admin/music_admin.php on line 64
 
IzKuFeLiQqQqQ каза:
Здравейте имам едно проблемче имам една форма и давам submit то си записва влизам някъде после връщам назад и то ме пита дали да повтори действието и то пак записва тааа как да го напрая да се връща без да записва пробвах с mysql_close(query); но не стана

ето кода
Код:
<form method="post">
Категория: <select name="m_cat">
<?php include ('../files/config.php');
$insert=mysql_query("SELECT * FROM `music_cats`") or die(mysql_error()); while($ins=mysql_fetch_array($insert)) {
echo"<option value='".$ins['mcat_id']."'>".$ins['mcat_name']."</option>\n";
}?></select><br>
Име:<br><input type="text" name="m_name"  size="35"/><br>
Линк за гледане/теглене:<br><input type="text" size="40" name="m_download" /><br>
<input type="submit" name="submit" value="Добави"/>
</form>
<?php 
if (isset($_POST['submit'])){
$m_name = htmlspecialchars($_POST['m_name']);
$m_download = htmlspecialchars($_POST['m_download']);
$m_cat = htmlspecialchars($_POST['m_cat']);
$m_date = date("d.m.y / H:i"); 
$query = mysql_query("INSERT INTO `music` (`m_name`,`m_download`,`m_date`,`m_cat`,`m_u_id`,`m_active`) VALUES ('$m_name','$m_download','$m_date','$m_cat','$my_id','yes');") or die(mysql_error()); 
if($query == true){echo "Успешно добавихте песента!";}
else {echo "Песента не беше добавена!";}
@mysql_close($query);
}
?>

дайте някво решение...

бтв пред mysql_close съм сложил @ щото иначе излиза
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/sunnybgi/public_html/admin/music_admin.php on line 64

Е, какъв е смисъла да даваш назад. Направи си един линк "Назад", които да води към предната страница и така няма да се повтаря действието
 
Проблема идва от това, че веднага след като направиш записа, показваш и съобщението за успешно записване. При бутона назад, браузъра ще извърши последното действие, включително събмит на формуляра.

За да решиш проблема, след записа, презареди страницата и едва тогава показвай съобщението. Нещо като това:

Код:
if (isset($_POST['submit'])){
      .....
    $query = mysql_query(...........);

    if($query == true){
         $status_code = 1;
    }else {
        $status_code = 0;
    }

    //reload the page
    header('location: /admin/music_admin.php?status='.$status_code);
} 


if($_GET['status'] == 1){
          echo "Успешно добавихте песента!";
}elseif($_GET['status'] == 0){
        echo "Песента не беше добавена!";
}

//в този момент дори и да натиснеш back бутона, би трябвало да се появи празен формуляр
 
Сложи бутон, но не такъв, които да е за "назад", а такъв, който да води към формата

Код:
<a href="form.php">Назад</a>
 

Back
Горе