誰かがこの問題について私を助けてくれることを願っています..ユーザーに必要なカテゴリを選択するためのフォームがあります。このフォームのチェック ボックスを使用して、カテゴリを選択できるようにします。彼らがカテゴリを選択した時点で、選択したカテゴリを SESSION に保存し、その後、カテゴリ ページが次のページにリダイレクトされます。
その工程はこんな感じ…
if ( $totalCategory >= 1 && $totalCategory <= 10 ) {
$_SESSION['category'] = $_POST['category'];
$url = BASE_URI . 'select_subject.php'; // Define the URL:
header("Location: $url");
exit(); // Quit the script.
}
私の問題は、ページが次のページ (select_subject.php) にリダイレクトされるときに、ユーザーが選択したカテゴリを変更するためにブラウザの戻るボタンを使用して再度カテゴリ ページに戻る必要がある場合があることです。しかし、それが発生すると、再びカテゴリページに移動することはなく、ブラウザは次のようなエラーを表示します...
ドキュメントの有効期限が切れました。このドキュメントは利用できなくなりました。
注:しかし、ページのリロードボタンをクリックすると、ページが正しく表示されます。
この場合、これを回避するために誰かの助けが必要であり、以前に選択したカテゴリを適切に表示して、カテゴリページを再度表示する必要があります..
更新コード:
<?php
if ( isset($_GET['submitted_category'])) {
if ( isset ( $_GET['category']) && is_array( $_GET['category'])) {
$_SESSION['selectedcatcount'] = count( $_GET['category']);
$totalCategory = count( $_GET['category']);
if ( $totalCategory >= 1 && $totalCategory <= 10 ) {
$_SESSION['category'] = $_GET['category'];
$url = BASE_URI . 'select_subject.php'; // Define the URL:
header("Location: $url");
exit(); // Quit the script.
} else {
echo '<div class="error">
<img src="images/error.png" />
<p style="margin:2px 0 0;">Please select atleast 1, not more than 10 categories.</p>
</div>'; }
} else {
echo '<div class="error">
<img src="images/error.png" />
<p style="margin:2px 0 0;">This can not be empty. Please select atleast one category.</p>
</div>';
}
}
$q = 'SELECT * FROM category ORDER BY category_id';
$r = mysqli_query( $dbc, $q);
$c = 0;
$i = 0;
echo '<form action="" method="get" accept-charset="utf-8">';
echo '<table><tr>';
while($row = mysqli_fetch_array( $r, MYSQLI_ASSOC )){
// if remainder is zero after 2 iterations (for 2 columns) and when $c > 0, end row and start a new row:
if( ($c % 2) == 0 && $c != 0){
echo "</tr><tr>";
}
echo '<td width="50%">
<input type="checkbox" name="category[]" value="' . $row['category_id'] . '" />' . $row['category_name'] .
'</td>';
$c++;
} // while..
// in case you need to fill a last empty cell:
if ( ( $i % 2 ) != 0 ){
// str_repeat() will be handy when you want more than 2 columns
echo str_repeat( "<td> </td>", ( 2 - ( $i % 2 ) ) );
}
echo "</tr></table>";
?>
</div>
<div class="continue">
<p>Please click 'Continue' button to proceed to next step</p>
<input type="submit" value="Continue" class="continue-btn" />
<input type="hidden" name="submitted_category" value="TRUE" />
</div>
</form>
誰かが私を助けてくれることを願っています..ありがとう..