我的html代码中有以下表单字段:
<select class="secret_question">
<option value ="1">The name of the city where you were born</option>
<option value ="2">The name of your first pet</option>
<option value ="3">What is your mother's maiden name</option>
</select>
问题:如何将所选选项存储到数据库中。我已经能够用以下代码将名称、电子邮件id等普通字段存储到数据库中:
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$stmt = $dbh->prepare("INSERT INTO users (firstname,lastname) VALUES ('$firstname', '$lastname')");
我对选择列表尝试了同样的技术,但它给了我"undefined index"
错误
如果表单元素不是"命名的",则会出现undefined index
错误。
您需要将您的<select>
命名如下:
<select class="secret_question" name="secret_question">
然后使用$secret_question = $_REQUEST['secret_question'];
例如:
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$secret_question = $_REQUEST['secret_question'];
$stmt = $dbh->prepare("INSERT INTO users (firstname,lastname,secret_question)
VALUES ('" . $firstname . "', '" . $lastname . "', '" . $secret_question . "')");
将DB列命名为secret_question
时
使用以下约定更安全:
'" . $firstname . "'
代替'$firstname'
但是,您可能希望使用输入字段而不是<select>
,因为人们可能会自己输入答案,这取决于您的设置方式。