私はCakePHPのSecurityComponent
を使用しています。そして、それはCSRF
の攻撃からフォームを保存するので、非常に重要です。私のプロジェクトには合計10-12のフォームがあり、これが私の最初のCakePHPプロジェクトです。 SecurityComponent
を有効にした後、私はちょっと困っていましたが、慎重な時間を取って取り除くことができました。これは私のプロジェクトの最後の形であり、すべてが正しいと思うが、依然としてフォームはブラックホールであると思う:(誰でも問題を教えてもらえますか?)CSRFのチェックや、SecurityComponent
を無効にしたくありません。コード:要求はブラックホールドされました - CakePHP
<?php
echo $this->Form->create('Record');
?>
<script type="text/javascript"> var me = new MetroExam(); </script>
<div class="exam_paper">
<div class="question_box" id="q_b">
<div class="q_n_a_header">
<div class="instructions">
<b>Instructions:</b><br>
<?=$inst['value_text']; ?>
</div>
<div id="timer">Please wait</div>
</div>
<div id="q_paper">
<img id="q" style="display: none;" src="/oes/<?=$exam['path'].'?ts='.time(); ?>">
<img id="loading_img" src="/oes/img/loading.gif">
</div>
</div>
<div class="ans_box" id="a_b">
<!-- information about answer paper. !important -->
<?php
$i = 0;
//these fields are essential for evaluating ans paper
echo $this->Form->hidden('submit', array('value' => 'true'));
echo $this->Form->hidden('start_time', array('value' => ''));
echo $this->Form->hidden('end_time', array('value' => ''));
echo $this->Form->hidden('duration', array('value' => ''));
echo $this->Form->hidden('valid', array('value' => ''));
echo $this->Form->hidden('passed', array('value' => ''));
//options for all radio
$options = array(
'1' => 'A',
'2' => 'B',
'3' => 'C',
'4' => 'D'
);
if($exam['choices'] == 5){
$options['5'] = 'None';
}
$questions = (int)$exam['questions']; // 40 <= $exam['questions'] <= 100
$i = 1;
while($questions--){
echo '<div class="'.(($i%2)==1?'each_answer_even':'each_answer_odd').'" id="ans-'.$i.'">';
echo '<div class="q_number">'.($i <= 9 ? '0'.$i : $i).'</div>';
$name = 'ans'.str_pad($i, 3, '0', STR_PAD_LEFT);
$attributes = array('empty' => false, 'legend' => false, 'onclick' => 'me.answer_click('.$i.')');
echo '<div class="mcq">'.$this->Form->radio($name, $options, $attributes).'</div>';
echo '</div>';
$i++;
}
echo $this->Form->end('Submit');
?>
</div>
</div>
これは基本的に、各グループは、形態4つの又は5のラジオボタンとの合計40〜100基を有するMCQ試験の形態であるIは、CakePHP 2.4を使用している事前に感謝を
javascriptを使用して非表示入力の値を変更することはできますか? – Nunser
はい、あります。私はjQueryで4/5の隠しフィールドを変更しています。しかしそれは問題ですか? –
おそらく、デバッグしましょう。シンプルなテキスト入力のために非表示のものを変更して、フォームを送信してみてください。それが提出すれば、それはあなたの問題です。私は説明と可能な解決策に答えます。もしそうでなければ、他に何ができるかを見なければならない。 – Nunser