0

我写了脚本,它工作得很好,但我想散列答案的 ID 不可用发现正确的答案。

所以我当前的代码看起来是这样的:

foreach($result2 as $row)
{
   $odpowiedz = $row['Tresc_odpowiedzi'];
   $value= $row['ID'];
   echo "<p><input type=\"radio\" name=\"odp\" value=\"$value\" />$odpowiedz</p>";
} // pobranie wartosci ID pytania z bazy i wpisanie go jako value


$zapytanie3 = $pdo->prepare('SELECT * FROM odpowiedzi WHERE ID = :ID_odpowiedzi'); //pobranie wedlud kategorii zdefiniowanej w 'bindValue'
$zapytanie3 -> bindValue(':ID_odpowiedzi',$_POST['odp'], PDO::PARAM_INT);
$zapytanie3 -> execute();
$result3 = $zapytanie3 -> fetchAll(PDO::FETCH_ASSOC);
//pobranie danej odpowiedzi, aby sprawdzic czy prawidlowa

不,我想散列 $value,所以很容易:$licznik_odp = hash( 'sha256', $value.$sald);,但我不知道如何检查它是否是 ID 号 254,等等。

因为$zapytanie3 -> bindValue(':ID_odpowiedzi',$_POST['odp'], PDO::PARAM_INT);我必须写出答案的 ID(在散列之前是 $row['ID'])

你知道怎么做吗?

4

1 回答 1

0

是的,没问题,也许我会帮助其他人:)

我在 MySQL 表 odpowiedzi (answers) 中添加了额外的 HASH 列,当我添加一些带有答案的问题时,我对每个答案进行了哈希处理:

$id = $rekord['ID'];
$hash_a = hash( 'sha256', $a.'sold'.$id);

$id - 问题的 ID

$a - 这是 $_POST 的一个答案

$hash_a - 用 id 散列答案

在收音机的价值中,我这样写这个哈希:

$value = $row['Hash'];
                echo "<p><input type=\"radio\" name=\"odp\" value=\"$value\" id=\"$value\" /><label for=\"$value\">$odpowiedz</label></p>";
and in checking question I changed my query:

最后我检查一下这个哈希是否存在于 mySQL

$zapytanie3 = $pdo->prepare('SELECT * FROM odpowiedzi WHERE Hash = :Hash'); //pobranie wedlud kategorii zdefiniowanej w 'bindValue'
            $zapytanie3 -> bindValue(':Hash',$_POST['odp'], PDO::PARAM_INT);

就是这样,我认为没有人可以检查 HTML 代码是否正确,因为所有答案都是散列 :)

于 2013-04-11T08:25:18.633 回答