2013-10-29 44 views
0

我想讓用戶在mysql數據庫中選擇一個表名,然後我可以通過字段中的表單的文本框添加數據。 我使用PHP $ _POST []將表名添加到添加表單中。但是以添加形式;當我提交添加按鈕;表名已丟失。 我搜索了很多,並測試會話和常量來保存表名值;但 沒有得到期望的結果。在提交表格中使用php的表名

任何幫助將不勝感激。

這裏是選擇表名的頁面代碼:

<form action="change_products.php" method="post" name="select_table"> 
<select name="edit_products" > 
<option <?php if($_POST['edit_products'] == "cabin") echo "selected='selected'"; ?> value="cabin">Cabin case</option> 
<option <?php if($_POST['edit_products'] == "cabin_door") echo "selected='selected'"; ?> value="cabin_door">Cabin door</option> 
</select> 
<input type="submit" value="OK"> 
</form> 

,這是在「change_products.php」頁面中添加表單的代碼。

<? 
include('functions.php'); //the database info 
define('selected_table', $_POST['edit_products']); 
?> 

<form method="post"> 

<table> 

    <tr> 
    <td>Mark:</td> 
    <td><input type="text" name="mark" /></td> 
    </tr> 


    <tr>  
    <td><input type="submit" name="add" value="New" /></td> 
    </tr> 
</table> 




<? 
if (isset($_POST['add'])) 
{ 
$mark=$_POST['mark']; 
mysql_query("INSERT INTO ".selected_table." (mark) VALUES ('$mark')"); 
} 
?> 

</form> 
+1

*旁註:*停止使用已棄用的'mysql_ *'函數。改用MySQLi或PDO。 – Raptor

+0

*旁註:*您的代碼受到SQL注入攻擊,因爲您直接允許將POST值插入到查詢中。 – Raptor

+0

這是非常糟糕的代碼。從來沒有**,直接在查詢中直接輸入「$ _GET」或「$ _POST」數據。 – tadman

回答

0

你沒有設置$_POST['add'],因此,PHP代碼change_products.php最後一部分不運行。