하나의 데이터베이스 열에 여러 확인란 선택을 삽입하는 간단한 솔루션을 찾고 있습니다. 사용자가 상자 1, 4 및 6을 선택하면 데이터베이스에 "1, 4, 6"이 반영됩니다. 쉼표는 좋지만 반드시 필요한 것은 아닙니다. 하나의 확인란을 선택하면 정보가 필요에 따라 삽입됩니다. 여러 항목을 선택하면 마지막 항목 만 DB에 삽입됩니다. 다른 모든 것은 정상적으로 작동하지만 이러한 체크 박스는 효과가 없습니다. 나는이 방법에 상관없이 선택한 항목 대신 임의의 숫자의 열 내부의 "어레이"나를 잎 없지만, 같은 질문을 누군가 다른 의해 제안단일 SQL 데이터베이스 열에 여러 확인란 값 삽입
<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);
} else {
$mode = "";
}
?>
<?php
을 사용했습니다.
내가 더 설명하기 위해 약간의 그림을 게시하려고 노력했다. 그러나 그것은 나를 허락하지 않을 것이다. 필자는 SQL이나 PHP 전문가가 아니며,이 데이터베이스를 상당히 빨리 구축하는 데 필요한만큼 배우려고 노력합니다. 이 문제에 대한 해결책이 있다면 제게 알려주십시오. 어떤 단계를해야, 보조 노트로
<td><input type="checkbox" name="mode[]" id="mode" value="1" />
mode 1<br />
<input type="checkbox" name="mode[]" id="mode" value="2" />
mode 2<br />
<input type="checkbox" name="mode[]" id="mode" value="3" />
mode 3<br />
<input type="checkbox" name="mode[]" id="mode" value="4" />
mode 4 <br />
<input type="checkbox" name="mode[]" id="mode" value="5" />
mode 5 <br />
<input type="checkbox" name="mode[]" id="mode" value="6" />
mode 6 <br />
<input type="checkbox" name="mode[]" id="mode" value="7" />
mode 7<br />
<input type="checkbox" name="mode[]" id="mode" value="8" />
mode 8
</td>
: 여기
내가 제출에 액션 스크립트 사용하고있는 코드입니다 :<?php
if(isset($_POST['mode'])) {
$mode = implode(",", $_POST['mode']);
} else {
$mode = "";
}
?>
<?php
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Get values from form
$gamename=$_POST['gamename'];
$region=$_POST['region'];
$mode=$_POST['mode'];
$notes=$_POST['notes'];
// Insert data into mysql
$sql="INSERT INTO $tbl_name(gamename, region, mode, notes)VALUES('$gamename', '$region', '$mode', '$notes')";
$result=mysql_query($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();
?>
을 그리고 여기 내 확인란에 대한 코드입니다 나는 DB와 웹 사이트가 간단한 악용에 취약하지 않도록 보장합니다. 공개적으로 정보를 데이터베이스에 제출하기 위해이 양식을 일반인이 사용할 계획입니다.
mysql_로 * 기능을 사용하지 마십시오을가되지 않는 것 ([참조 * 빨간색 box *] (http://php.net/manual/en/function.mysql-query.php)) 및 sql-injection에 취약합니다. [* PDO *] (http://php.net/manual/en/book.pdo.php) 또는 [* MySQLi *] (http://php.net/manual/en/book.mysqli.php) – alfasin
초보자를 위해 SQL에 대해 좀 더 자세히 설명해 주시겠습니까? 바로이 취약점이 어디에 있으며 지금 가지고있는 것과 동일한 기능을 유지하면서 취약한 코드를 대체 할 수 있습니까? –
내 의견에 게시 된 링크를 읽는다면 모든 질문에 답할 것입니다. – alfasin