2014-10-15 2 views
0

У меня есть форма, которая требует ввода от пользователя, такого как имя, фамилия, номер телефона, адрес и т. Д., И содержит вопросы «Да/Нет». Для вопросов «Да/Нет» я использую радиокнопки, например: Красный цвет? Да Нет. Пользователь должен его проверить. Эта форма находится внутри моего .php-файла, у меня также есть еще один .php-файл, который связан с формой и должен хранить данные в базе данных в MySQl. Мой вопрос: правильно ли я храню радиокнопки, а внутри моей базы данных должны быть логические кнопки?Сохранение данных с переключателей в базе данных MySQL

Кусочек моей формы, которая содержит кнопки радио:

<div class="control-group questions"> 
<div class="field-control"> 
<p>This is a Yes/No question</p> 
<div class="input-wrapper"> 
<div class="answer"><input class="btn-checkbox" type="radio" name="groupone" value="yes" /><label>Yes</label></div> 
<input class="btn-checkbox" type="radio" name="groupone" value="no" /><label>No</label><br /> 
</div> 
</div> 
</div> 
<div class="control-group questions"> 
<div class="field-control"> 
<p>This is a Yes/No question</p> 
<div class="input-wrapper"> 
<div class="answer"><input class="btn-checkbox" type="radio" name="grouptwo" value="yes" /> <label>Yes</label></div> 
<input class="btn-checkbox" type="radio" name="grouptwo" value="no" /><label>No</label><br/
</div> 
</div> 
</div> 

MySQL:

$value = @$_POST ['groupone']; 
$sql = "INSERT INTO checkout (groupone) VALUES ('$value')"; 

if (!mysqli_query($connection, $sql)){ 
    die('Error: ' . mysqli_connect_error($connection)); 
} 

$value = @$_POST ['grouptwo']; 
$sql = "INSERT INTO checkout (grouptwo) VALUES ('$value')"; 

if (!mysqli_query($connection, $sql)){ 
    die('Error: ' . mysqli_connect_error($connection)); 
} 
+0

Кнопки радио не являются действительно логическими, поскольку они могут иметь больше, чем значение «включено» или «выключено». Вы можете сохранить их фактические значения, которые были бы более чистыми. –

+1

Очень важно: прочитайте [Как предотвратить SQL-инъекцию в PHP] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Ваш код в его текущей форме очень уязвим для вмешательства в SQL-инъекцию. Поскольку вы используете MySQLi, пришло время начать учиться использовать ['prepare()/execute()'] (http://php.net/manual/en/mysqli.prepare.php), чтобы защитить ваш код с помощью подготовленные операторы вместо передачи '$ _POST' непосредственно в ваши строки SQL. –

+0

Спасибо, Миахель Берковски. Я обязательно это сделаю. В этот момент я хочу убедиться, что правильно храню радиокнопки и что все, что я ввожу в форму, поступает в базу данных. Как только я это выясню, я обязательно позабочусь о внедрении sql. – Arwen

ответ

0

Если вы хотите сохранить логическое значение в базе данных, используйте этот код

$value = @($_POST ['groupone'] == 'yes') ? true : false; 
Смежные вопросы