ไม่อยากให้เพิ่มข้อมูลลง mysql เมื่อกด refresh Code (PHP) include("../conn
Code (PHP)
<?php
include("../connect.inc.php");
$nametor=$_POST["nametor"];
$telephone=$_POST["tel"];
$address=$_POST["address"];
$useradd=$_POST["useradd"];
if($nametor == "" or $telephone=="" or $address=="" or $useradd=="" or $file=="")
{
echo "<center><h2>คุณกรอกข้อมูลไม่ครบ<br></h2>";
echo "<input name='back' type='button' onclick='history.back()' value='กลับไปกรอกข้อมูล'/></center>";
exit();
}
else
{
$division="การท่าเรือแห่งประเทศไทย";
$money=$_POST["money"];
$price=$_POST["price"];
$date=date("Y-m-d");
$date_limit=$_POST["date_limit"];
$email=$_POST["email"];
$province=$_POST["province"];
$useradd=$_POST["useradd"];
$file=$_FILES["file"]["name"];
if ($_FILES["file"]["type"] == "application/pdf")
{
if($_FILES["file"]["error"] != 0)
{
die("upload ไม่ได้");
}
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $file);
$strSQL="INSERT INTO news_tor (id,division,topic,money,price,date,date_limit,email,telephone,address,province,user_add,filename) VALUES (' ','$division','$nametor','$money','$price','$date','$date_limit','$email','$telephone','$address','$province','$useradd','$file')";
$query=mysql_query($strSQL) or die(mysql_error());
mysql_close();
echo "<center><h2>บันทึกข้อมูลเรียบร้อย</h2><br>
<a href='index.php'>เพิ่มข้อมูลต่อ</a></center><hr>";
include("list_data.php");
}
else
{
echo "<center><h2>คุณอัพโหลดผิดชนิดไฟล์ ต้องเป็น pdf</h2>";
echo "<input name='back' type='button' onclick='history.back()' value='กลับไปแก้ไข'/></center>";
}
}
?>
หน้านี้จะเป็นโค้ดที่รับค่ามาจาก form เมื่อกรอกข้อมูลเสร็จจะแสดง บันทึกข้อมูลเรียบร้อยแล้ว แต่เมื่อผมกด refresh ข้อมูลก็จะเพิ่มเข้าไปในฐานข้อมูลอีก ผมต้องการที่จะป้องกันการ refresh ข้อมูลต้องเขียนโค้ดแบบไหนครับช่วยต่อเติมให้หน่อยครับ ขอบคุณครับTag : - - - -
Date :
2009-05-27 14:27:49
By :
chuensanguan
View :
2629
Reply :
4
id เป็น auto_increment ใช่มั้ยคะ ก็ต้องหา key ซักตัวเป็นตัวเช็คค่าซ้ำ
เช่น
$sqlexist="SELECT nametor FROM news_tor WHERE nametor='$nametor'";
$resultexist=mysql_query($sqlexist);
if ($mysql_num_rows($resultexist)==0) {
$strSQL="INSERT INTO news_tor (id,division,topic,money,price,date,date_limit,email,telephone,address,province,user_add,filename) VALUES (' ','$division','$nametor','$money','$price','$date','$date_limit','$email','$telephone','$address','$province','$useradd','$file')";
36.
$query=mysql_query($strSQL) or die(mysql_error());
} else {echo "มีข้อมูล $id อยู่แล้ว ไม่สามารถเพิ่มซ้ำได้";}
อันนี้แก้แบบง่ายๆ อาจจะมีไอเดียแบบอื่นอีกนะคะ
Date :
2009-05-27 14:48:42
By :
nimporn
ลองกำหนดค่าการบันทึกให้ session ที่เป็นตัวเช็คว่ามีการบันทึกข้อมูลหรือยัง เช่น $_SESSION['saved'] = not_save;
ถ้า $_SESSION['saved'] = not_save
จริง ทำการบันทึกและกำหนดค่า $_SESSION['saved'] = saved
[ไม่จริง ทำอย่างอื่น.......]
Date :
2009-05-27 15:16:09
By :
Ravatna
-- ขอบคุณครับทุกๆคน เพื่อนดีๆมีเยอะที่ thaicreate ยังแวะเวียนอีกนานครับ --
Date :
2009-05-27 18:20:45
By :
สีนิว
พอสั่งให้ INSERT แล้ว ก็ใช้ให้มัน Refresh 1 ครั้งครับ ค่าหาย ไม่มีการ insert
Code (PHP)
<?php
$strSQL="INSERT INTO news_tor (id,division,topic,money,price,date,date_limit,email,telephone,address,province,user_add,filename) VALUES (' ','$division','$nametor','$money','$price','$date','$date_limit','$email','$telephone','$address','$province','$useradd','$file')";
$query=mysql_query($strSQL) or die(mysql_error());
mysql_close();
echo "<center><h2>บันทึกข้อมูลเรียบร้อย</h2><br>";
echo "<meta http-equiv='refresh' content='2 ;url=index.php'>" ;
?>
Date :
2009-05-28 10:14:02
By :
teez1232002
Load balance : Server 03