2016-09-26 3 views
1

私はチェックボックスで質問が少ないhtmlテストをしています。私の目標は、選択した値をデータベースに保存することです。ここでMySQLのチェックボックスの値を保存します

は私のコードです:

<?php 
$host="***"; // Host name 
$username="***"; // Mysql username 
$password="***"; // Mysql password 
$db_name="***"; // Database name 
$tbl_name="test_submissions"; // Table name 

// Connect to server and select database. 
$conn = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// Get values from form 
$question1=implode(',',$_POST["radio-choice-h-2"]); 

//Instant search results 
$perfume1=implode(',', $_POST["product1"]); 
$perfume2=implode(',', $_POST["product2"]); 
$perfume3=implode(',', $_POST["product3"]); 
$noperfume4=implode(',', $_POST["product4"]); 

//Rest of questions 
$question2=implode(',', $_POST["radio-choice-h-4"]); 
$question3=implode(',', $_POST["radio-choice-h-5"]); 
$question4=implode(',', $_POST["radio-choice-h-6"]); 
$question5=implode(',', $_POST["radio-choice-h-7"]); 
$question6=implode(',', $_POST["radio-choice-h-8"]); 
$question7=implode(',', $_POST["radio-choice-h-9"]); 
$question8=implode(',', $_POST["radio-choice-h-10"]); 
$question9=implode(',', $_POST["radio-choice-h-11"]); 
$question10=implode(',', $_POST["radio-choice-h-12"]); 
$question11=implode(',', $_POST["radio-choice-h-13"]); 
$question12=implode(',', $_POST["radio-choice-h-14"]); 
$question13=implode(',', $_POST["radio-choice-h-15"]); 
$question14=implode(',', $_POST["radio-choice-h-16"]); 

//Inserting email 
$email=implode(',', $_POST["email"]); 

if(isset($_POST['submit'])) 
{ 
    $sql ="INSERT INTO test_submissions (question1, perfume1, perfume2, perfume3, noperfume5, question2, question3,"; 
    $sql +="question4, question5, question6, question7, question8, question9, question10, question11, question12, question13$ 
    $sql +="question14, question15, mail) VALUES('$question1','$perfume1','$perfume2','$perfume3','$noperfume4','$question2'$ 
    $sql +="'$question5','$question6','$question7','$question8','$question9','$question10','$question11','$question12','$que$ 
    $result=mysql_query($conn, $sql) or die("Error en l'SQL"); 
} 

// if successfully insert data into database, displays message "Successful". 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
echo "<a href='insert.php'>Back to main page</a>"; 
} 

else { 
echo "ERROR"; 

} 
<?php 
// close connection 
mysql_close(); 
?> 

のindex.php

<form action="insert.php" method="post"> 
<fieldset data-role="controlgroup" data-type="horizontal"> 
       <input name="radio-choice-h-2[]" id="radio-choice-h-2a" value="woman" checked="checked" type="radio"> 
       <label for="radio-choice-h-2a">Mujer</label> 
       <input name="radio-choice-h-2[]" id="radio-choice-h-2b" value="man" type="radio"> 
       <label for="radio-choice-h-2b">Hombre</label> 
       <input name="radio-choice-h-2[]" id="radio-choice-h-2c" value="baby" type="radio"> 
       <label for="radio-choice-h-2c">Bebé</label> 
       <input name="radio-choice-h-2[]" id="radio-choice-h-2d" value="pet" type="radio"> 
       <label for="radio-choice-h-2d">Mascota</label> 
       <input name="radio-choice-h-2[]" id="radio-choice-h-2e" value="environtment" type="radio"> 
       <label for="radio-choice-h-2e">Ambiental</label> 
     </fieldset> 
<input type="submit" name="submit" data-inline="true" value="Submit"></p> 

そして、私は保存することはできませんよinsert.php

選択した小切手データベース内のボックス。誰が何が間違っているか知っていますか?あなたの助けをありがとう!

+4

はラジオボタンです。一度に1つのラジオグループから1つだけを選択することができます。彼らは 'OR'の選択肢です。複数の選択を許可する場合は、チェックボックスを使用します( 'AND'選択)。だから、なぜあなたの質問は「チェックボックス」と表示されますか?また、[SQLインジェクション攻撃](http://bobby-tables.com) –

+1

に脆弱であることに注意してください。このスキーマ設計は、[ゼロ、1または無限大](http://en.wikipedia。 org/wiki/Zero_one_infinity_rule)の[データベース正規化](http://en.wikipedia.org/wiki/Database_normalization)を参照してください。 – tadman

+1

**警告**:PHPを学んでいるだけの方は、[mysql_query'](http://php.net/manual/en/function.mysql-query.php)インタフェースを使用しないでください。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーパラメータは**適切にエスケープされていません**(http://bobby-tables.com/php)、悪用可能な[SQLインジェクションバグ](http://bobby-tables.com/)があります。 – tadman

答えて

0
//use type="checkbox" 
<input name="radio-choice-h-2[]" id="radio-choice-h-2b" value="man" type="checkbox"> 
関連する問題