2014-06-18 255 views
0

我的PHP代碼和數據庫有一點問題。每次刷新頁面時,當我打開頁面時,新的空行也被添加到數據庫中,這是什麼問題?PHP - 刷新頁面刷新記錄

<?php 
if (isset($_POST)) { 
    $con = mysql_connect("localhost","dwarfmaster",""); 

    if (!$con) { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("my_dwarfmaster", $con); 

    $name = $_POST['name']; 
    $release_year = $_POST['release_year']; 
    $publisher = $_POST['publisher']; 
    $genre = $_POST['genre']; 

    $sql = "INSERT INTO gamelist (name, release_year, publisher, genre) 
     VALUES 
     ('$_POST[name]','$_POST[release_year]', 
     '$_POST[publisher]','$_POST[genre]')"; 

    if (!mysql_query($sql, $con)) { 
     die('Error: ' . mysql_error()); 
    } 

    echo "1 record added"; 

    mysql_close($con); 
} 
?> 
+1

我要胡亂猜測,說你在同一個頁面的形式。對(提交)提交按鈕使用'isset()'。 –

+3

[請不要在新代碼中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[紅框](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 **您也可以[SQL注入](http://stackoverflow.com/q/60174)** –

+0

檢查'isset'和'empty' $ _POST' – Bora

回答

0

或簡單地改變

if (isset($_POST)) 

if (isset($_POST['name'])) 
0

您可以添加以下代碼 - :(!空(array_filter($ _ POST)))

如果{。 。從表單中將數據插入數據庫 的代碼。 。 }

1

檢查,如果請求方法是POST,使用:

if ($_SERVER['REQUEST_METHOD'] == 'POST') 

if(isset($_POST))將始終返回true

0
if (isset($_POST)) 

將始終返回true!

嘗試

if (isset($_POST['name'])&&isset($_POST['release_year']) 
      &&isset($_POST['publisher'])&&isset($_POST['genre'])) 

不是每次都檢查每一個變量!