2013-02-26 28 views
1

我從HTML文件發送數據到PHP,但它不保存所有值空被存儲在數據的基礎上,我認爲這是沒有得到我使用的HTML值以下代碼發送的HTML文件,PHP以及將數據存入數據庫

<html> 
<body><form action="data.php" method="get"> 

<input type="text" name="$R1" id="R1" value="John"><br> 
<input type="text" name="$R2" id="R2" value="thePassword"><br> 
<input type="text" name="$R3" id="R3" value="thePassword"><br> 
<input type="text" name="$R4" id="R4" value="thePassword"><br> 
<input type="text" name="$R5" id="R5" value="thePassword"><br> 
<input type="text" name="$R6" id="R6" value="thePassword"><br> 
<input type="text" name="$R7" id="R7" value="thePassword"><br> 
<input type="text" name="$R8" id="R8" value="thePassword"><br> 
<input type="text" name="$R9" id="R9" value="thePassword"><br> 
<input type="text" name="$R10" id="R10" value="thePassword"><br> 
<input type="text" name="$R11" id="R11" value="thePassword"><br> 
<input type="submit"> 
</form></body> 
</html> 

PHP代碼爲了將數據添加到表中,它只插入空白記錄。

 <?php 

     $con =    
     mysql_connect("surveyipad.db.6420177.hostedresource.com","",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

     mysql_select_db("surveyipad", $con); 

     $device_Id=$_GET['device_Id']; 

     $R1=$_GET['R1']; 
     $R2=$_GET['R2']; 
     $R3=$_GET['R3']; 
     $R4=$_GET['R4']; 
     $R5=$_GET['R5']; 
     $R6=$_GET['R6']; 
    $R7=$_GET['R7']; 
    $R8=$_GET['R8']; 
    $R9=$_GET['R9']; 
$R10=$_GET['R10']; 
$R11=$_GET['R11']; 

    echo($R1); 


    $update_date_time=$_GET['update_date_time']; 

    $teritory1=$_GET['teritory1']; 


    $query=("INSERT INTO std  (device_Id,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,update_date_time,teritory1) 

     VALUES 
('$device_Id','$R1','$R2','$R3','$R4','$R5','$R6','$R7','$R8','$R9','$R10','$R11','$update_date_time','$teritory1')"); 


    mysql_query($query,$con); 
    printf("Records inserted: %d\n", mysql_affected_rows()); 
    ?> 

回答

2

變化

<input type="text" name="$R1" id="R1" value="John"><br>

<input type="text" name="R1" id="R1" value="John"><br>

name="$R1"name="R1"而得名嘗試

=>請您查詢從安全sql注入。

=>使用mysql_real_escape_string

$query=("INSERT INTO std  (device_Id,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,update_date_time,teritory1) 
VALUES 
('".mysql_real_escape_string($device_Id)."', 
'".mysql_real_escape_string($R1)."', 
'".mysql_real_escape_string($R2)."', 
'".mysql_real_escape_string($R3)."', 
'".mysql_real_escape_string($R4)."', 
'".mysql_real_escape_string($R5)."', 
'".mysql_real_escape_string($R6)."', 
'".mysql_real_escape_string($R7)."', 
'".mysql_real_escape_string($R8)."', 
'".mysql_real_escape_string($R9)."', 
'".mysql_real_escape_string($R10)."', 
'".mysql_real_escape_string($R11)."', 
'".mysql_real_escape_string($update_date_time)."', 
'".mysql_real_escape_string($teritory1)."')"); 

=> mysql_ *功能deprected,使用mysqli_ *功能或PDO

=>並不重要:這是更好的變化method="get"method="POST",如果你不有特定的使用原因get

+0

任何我們可能將此php文件上傳到任何服務器並在html文件中從那裏訪問它的任何方式 – 2013-02-26 06:48:51

+0

爲什麼要這麼做呢?將這兩個文件保存在同一服務器中,我認爲您不能訪問文件,但您可以將表單操作提交到服務器頁面。 – 2013-02-26 06:51:50

+0

得到形式'動作=「http://celeritas-solutions.com/nsm/data.php」' – 2013-02-26 06:58:46

1

您的表單中的name屬性不應以$開頭:

<input type="text" name="R1" id="R1" value="John"> 

...等等


你的代碼是非常容易受到注射。您應該更新它以停止使用ext/mysql並通過PDO/mysqli正確使用參數化語句。

您還沒有發送與形式的其餘一起update_date_timeterritory1無論是。有什麼理由通過POST使用GET?您應該使用POST進行非冪等請求。

+0

得到了這個工作,我可以使用POST – 2013-02-26 06:33:26

1

從你的HTML name屬性中刪除$。更改爲name="R1"

相關問題