2013-02-26 26 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"

相关问题