2016-05-13 88 views
0

one.html单选按钮的值没有得到存储在数据库

<!DOCTYPE HTML> 
<html> 
<head> 
<title>page1</title> 
<link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<div id="one"> 
<form method="post" action="connect1.php"> 
<h4>Answer all the questions on the scale (1)Strongly agree to (5)Strongly disagree </h4> 
<table width="1000" border="1" cellpadding="10"> 
<tbody> 
    <tr> 
    <th style="width:50% ; text-align:center" scope="col">Questions</th> 
    <th style="width:10% ; text-align:center" scope="col">Strongly agree</th> 
    <th style="width:10% ; text-align:center" scope="col">Agree</th> 
    <th style="width:10% ; text-align:center" scope="col">Neutral</th> 
    <th style="width:10% ; text-align:center" scope="col">Disagree</th> 
    <th style="width:10% ; text-align:center" scope="col">Strongly disagree</th> 
    </tr> 
    <tr> 
    <td>1.People are clear about their role and performance levels expected of them.</td> 
    <td><input type="radio" name="q1" value="q1a"> 
     1</td> 
    <td><input type="radio" name="q1" value="q1b"> 
     2</td> 
    <td><input type="radio" name="q1" value="q1c"> 
     3</td> 
    <td><input type="radio" name="q1" value="q1d"> 
     4</td> 
    <td><input type="radio" name="q1" value="q1e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>2.People understand how their role fits with the responsibilities of others.</td> 
    <td><input type="radio" name="q2" value="q2a"> 
     1</td> 
    <td><input type="radio" name="q2" value="q2b"> 
     2</td> 
    <td><input type="radio" name="q2" value="q2c"> 
     3</td> 
    <td><input type="radio" name="q2" value="q2d"> 
     4</td> 
    <td><input type="radio" name="q2" value="q2e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>3.People understand the contribution they are making to organisational objectives.</td> 
    <td><input type="radio" name="q3" value="q3a"> 
     1</td> 
    <td><input type="radio" name="q3" value="q3b"> 
     2</td> 
    <td><input type="radio" name="q3" value="q3c"> 
     3</td> 
    <td><input type="radio" name="q3" value="q3d"> 
     4</td> 
    <td><input type="radio" name="q3" value="q3e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>4.People are clear about the behaviours expected of them in achieving their objectives.</td> 
    <td><input type="radio" name="q4" value="q4a"> 
     1</td> 
    <td><input type="radio" name="q4" value="q4b"> 
     2</td> 
    <td><input type="radio" name="q4" value="q4c"> 
     3</td> 
    <td><input type="radio" name="q4" value="q4d"> 
     4</td> 
    <td><input type="radio" name="q4" value="q4e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>5.Values and attributes are aligned with each other and support critical behaviour such as customer service or innovation.</td> 
    <td><input type="radio" name="q5" value="q5a"> 
     1</td> 
    <td><input type="radio" name="q5" value="q5b"> 
     2</td> 
    <td><input type="radio" name="q5" value="q5c"> 
     3</td> 
    <td><input type="radio" name="q5" value="q5d"> 
     4</td> 
    <td><input type="radio" name="q5" value="q5e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>6.People feel the organisational systems are 'in sync' with their objectives.</td> 
    <td><input type="radio" name="q6" value="q6a"> 
     1</td> 
    <td><input type="radio" name="q6" value="q6b"> 
     2</td> 
    <td><input type="radio" name="q6" value="q6c"> 
     3</td> 
    <td><input type="radio" name="q6" value="q6d"> 
     4</td> 
    <td><input type="radio" name="q6" value="q6e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>7.People believe they are given space to try new ideas or ways of doing things.</td> 
    <td><input type="radio" name="q7" value="q7a"> 
     1</td> 
    <td><input type="radio" name="q7" value="q7b"> 
     2</td> 
    <td><input type="radio" name="q7" value="q7c"> 
     3</td> 
    <td><input type="radio" name="q7" value="q7d"> 
     4</td> 
    <td><input type="radio" name="q7" value="q7e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>8.Knowledge-sharing enables people to learn from one another.</td> 
    <td><input type="radio" name="q8" value="q8a"> 
     1</td> 
    <td><input type="radio" name="q8" value="q8b"> 
     2</td> 
    <td><input type="radio" name="q8" value="q8c"> 
     3</td> 
    <td><input type="radio" name="q8" value="q8d"> 
     4</td> 
    <td><input type="radio" name="q8" value="q8e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>9.Cross-functional working enables people to learn from others' experiences.</td> 
    <td><input type="radio" name="q9" value="q9a"> 
     1</td> 
    <td><input type="radio" name="q9" value="q9b"> 
     2</td> 
    <td><input type="radio" name="q9" value="q9c"> 
     3</td> 
    <td><input type="radio" name="q9" value="q9d"> 
     4</td> 
    <td><input type="radio" name="q9" value="q9e"> 
     5</td> 
    </tr> 
    <tr> 
    <td>10.People watch for changes within the external world that might impact on the organisation.</td> 
    <td><input type="radio" name="q10" value="q10a"> 
     1</td> 
    <td><input type="radio" name="q10" value="q10b"> 
     2</td> 
    <td><input type="radio" name="q10" value="q10c"> 
     3</td> 
    <td><input type="radio" name="q10" value="q10d"> 
     4</td> 
    <td><input type="radio" name="q10" value="q10e"> 
     5</td> 
    </tr> 
</tbody> 
</table> 
<input type="submit" value="submit"> 
</form> 
</div> 
</body> 
</html> 

connect1.php

only the value for first question $q1 is getting stored in the db. Remaining all nine values have value as 0 stored. What is causing this

:在数据库

<?php 
//connecting to the database 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'survey'); 
define('DB_USER','root'); 
define('DB_PASSWORD',''); 
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 

//inserting Record to the database 
$q1 = $_POST['q1']; 
$q2 = $_POST['q2']; 
$q3 = $_POST['q3']; 
$q4 = $_POST['q4']; 
$q5 = $_POST['q5']; 
$q6 = $_POST['q6']; 
$q7 = $_POST['q7']; 
$q8 = $_POST['q8']; 
$q9 = $_POST['q9']; 
$q10 = $_POST['q10']; 
$query = "INSERT INTO one(q1,q2,q3,q4,q5,q6,q7,q8,q9,q10)VALUES('$q1','$q2','$q3','$q4','$q5','$q6','$q7','$q8','$q9','$q10')"; 
$result = mysql_query($query); 
if($result) 
{ 
echo "Thank you for taking the test!"; 
} 
else 
{ 
die('Error: '.mysql_error($con)); 
} 
mysql_close($con); 
?> 

结果

我有十个问题,从$q1$q10标记为10个问题。每个问题有五个单选按钮选项,用户选择一个。在存储到数据库中时,将$q1列的值存储为(q1a/q1b/q1c/q1d/q1e)作为这五个选项之一。但是对于下一个问题,只存储零(0)。

+0

该代码突出显示应该告诉你,你有一个未公开的引用文字 – RiggsFolly

+1

大概在这里'​​9.跨功能工作使人们可以从别人的经验中学习。' – RiggsFolly

+0

@RiggsFolly Nah,这只是由于格式不正确 - 荧光笔对该语言感到困惑,因为它全部塞入一个代码块中,其前缀为文件名。 – CherryDT

回答

0

首先,为避免使用mysql_函数,您应该将其转换为带有预处理语句的PDO。这里的示例:http://php.net/manual/en/pdo.prepared-statements.php

原因是mysql_已从PHP5.5弃用,并从PHP7中全部删除。您当前的代码对于SQL注入和Cross站点脚本都很脆弱,PDO可以帮助您解决SQL注入问题。

您也验证了来自用户的数据,ALLWAYS。你不能相信他们。如果有人要编辑单选按钮的值,他们可以将任何东西插入到数据库中。 当您使用POST/GET时,我建议使用内置的PHP输入过滤器filter_input()函数,它将为您过滤输入,从而防止跨站点脚本。

您还应该防止使用die();并且mysql错误消息不应该显示给最终用户。你应该只显示一段文字,说明发生的事情,而不是实际的错误,这应该记录下来,你的眼睛也只能读取。

在查询的每个段之后留出空格,可读性和格式化可能会破坏您的插入。插入一个(q1,q2)VALUES('$ q1','$ q2')。但是如果你决定使用PDO,这将会有点不同。

尝试var_dump($ _POST)来查看您是否有提交POST数据。

没有密码的ROOT也非常重要,应该至少有一个密码,使用root通常不是一个好习惯。最好的情况是如果你可以让一个新用户成为那个数据库。

我希望你把这当作建设性的批评,我只是想让你的代码更好更安全。

谢谢!

+0

我在我的系统中有一个用户名和密码,只是没有显示在这里。因为我只是学习代码,我不知道弃用my_sql函数。建议将我的php代码替换为PDO函数。修改后肯定会发布任何查询或结果。非常感谢您的意见! – panda

相关问题