我有下面的数组,它会生成一个随机问题及其表格的密钥。
我将密钥保存在我的数据库中供以后使用,例如密码恢复等......
问题是,每次询问问题时,保存在数据库中的密钥大多不是问题的密钥。
这是我的insert.php用于保存密钥(secQ):
所有正常工作的连接和验证......
<?php
include("questions.php");
$dbh= $pdo->prepare("INSERT INTO users (secQ ) values (?)");
$dbh->bindParam(1, $secQ );
$dbh->execute();
?>
这是我的问题.php:
<?php
function secQ(){
$questions = array();
$questions[0] = "1";
$questions[1] = "2";
$questions[2] = "3";
$questions[3] = "4";
$questions[4] = "5";
$rand_key = array_rand($questions, 1);
return array($rand_key, $questions[$rand_key]);
}
$q = secQ();
$secQ = $q[0];
$question = $q[1];
?>
我想这是因为在将secQ插入数据库之前 有include(“questions.php”);它可能会再次生成一个不同的密钥,而不是表格中的问题。
感谢looot
答案 0 :(得分:0)
这可能是一个很好的解决方案:
我们可以使用会话在php文件之间进行通信,如下所示:
在insert.php中:
$secQ = $_SESSION['secQ'];
在questions.php中:
$_SESSION['secQ'] = $secQ;
这很有效,但我在将数据插入数据库之前就开始插入insert.php时担心这个方法的安全性。
对此的任何评论都会有所帮助,谢谢。