2

ウェブサイト用のphpベースのクイズを作成しています。私は初心者です。データベースから質問とオプションを取得し、ページのフォームに表示するようにコーディングしました。ユーザーがオプションを選択すると、回答がデータベースに挿入されます。いくつかの bsic コードを書きましたが、うまくいきません。ここに私のコードがあります

     if(isset($_POST['next']))
{
    $a=$_POST['a'];
}
if(!isset($a))
{
    $a=0;
}
include('connection.php');
mysql_query("INSERT INTO answers (username,qid, option)
VALUES ($username,a-1,'$_POST('option'))");

$sql1="SELECT * FROM exam1  LIMIT 1 OFFSET $a";
$result=mysql_query($sql1);
echo "<form method='post' action='quiz.php'>";
while ($row = mysql_fetch_array($result))
{
    echo $row['question']. "<br/>";
    echo "<input type='radio' value='optiona' name='option'>" .$row['optiona'];
    echo "<input type='radio' value='optionb' name='option'>" .$row['optionb'];
    echo "<input type='radio' value='optionc' name='option'>" .$row['optionc'];
    echo "<input type='radio' value='optiond' name='option'>" .$row['optiond']; "<br/>";
}
$c=$a-1;
$b=$a+1;
echo "<input type='hidden' value='$c' name='a'>";
echo "<input type='submit' name='previous' value='previous'> ";
echo "<input type='hidden' value='$b' name='a'>";
echo "<input type='submit' name='next' value='next'> ";
echo "<input type='reset' name='reset' value='Reset'>";
echo "</form>";

?>

4

2 に答える 2

2

大大注目!これが単なるテスト コード ノートの最終版であることを願っています。

あなたのコードはInject Vulnerably hereです$a=$_POST['a'];

$a= filter_input(INPUT_POST, 'a', FILTER_SANITIZE_STRING); 攻撃を逃れたこちらとの交換をオススメします!

お役に立てば幸いです

于 2013-02-22T21:37:16.423 に答える
2

PHP の基本的な構文を学習する必要があります。$_POST関数ではありません。配列です。例えば

$var = $_POST['var'];
             ^--   ^--- note the bracketing.

コード DID が機能したとしても、SQL インジェクション攻撃に対して無防備です。

于 2013-02-22T21:17:01.867 に答える