У меня есть форма, которая требует ввода от пользователя, такого как имя, фамилия, номер телефона, адрес и т. Д., И содержит вопросы «Да/Нет». Для вопросов «Да/Нет» я использую радиокнопки, например: Красный цвет? Да Нет. Пользователь должен его проверить. Эта форма находится внутри моего .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));
}
Кнопки радио не являются действительно логическими, поскольку они могут иметь больше, чем значение «включено» или «выключено». Вы можете сохранить их фактические значения, которые были бы более чистыми. –
Очень важно: прочитайте [Как предотвратить 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. –
Спасибо, Миахель Берковски. Я обязательно это сделаю. В этот момент я хочу убедиться, что правильно храню радиокнопки и что все, что я ввожу в форму, поступает в базу данных. Как только я это выясню, я обязательно позабочусь о внедрении sql. – Arwen