2011-08-20 7 views
1

私はトレジャーハントのオンラインクイズをデザインしています.1つのファイル、つまり1.php、2.php..10.phpがあります。現在の質問彼は次のページにリダイレクトする必要がありますが、私の場合、プレーヤーがURLを変更した場合、次の質問を見ることができます。PHPがページにリダイレクトする問題

+0

セッションを使用して、プレイヤーの現在のステップを保存し、次に進行状況に基づいて次の質問を表示するquestion.phpページを1つだけ持つことができます。 – cope360

答えて

1

質問が完了したらセッション変数を格納します。セッション変数の値がアクセスされている質問の番号より小さい場合は、アクセスを拒否します。

session_start(); 
// just finished question 5, for example 
// The user may now access question 6 
$_SESSION['question'] = 6; 


// User attempts to access a question: 
// Suppose $current_question is 7 
if ($_SESSION['question'] < $current_question) { 
    // deny 
} 
else { 
    // display the question 
} 
+0

、ありがとうございます。私は問題の数をデータベースに保存し、 "header"コマンドを使ってそのページにリダイレクトすることで問題を解決しました。 –

2

ユーザーがアクセスしたページ番号の最大値をセッション変数に格納します。 4.php上

つまり、あなたが5.phpオン$_SESSION['page'] = 4;

にしてください、あなたは$_SESSION['page']は、少なくとも4

あなたがsession_start()と呼ばれている必要がありますのでご注意くださいであることを確認したいですセッションを使用するすべてのページで$_SESSIONにアクセスしてください。

-1

ただなど、代わりに2.phpのlikeyouknowit.php、代わりに1.phpのkiran.phpのように、予測不可能な名前に変更し、あなたが彼をリダイレクトするとき

+1

誰かがそれらを書き留めてどこかのフォーラムに投稿するまでは。 –

+0

これは、長期的にはお客様の質問を一切解決しません。 –

+0

@Michael:答えを書いているのとは違うのですか?私は個人的にはそのアプローチが好きです。したがって、中途半端に終了する必要がある場合は、OPがそれを必要としない限り、すべてをやり直すのではなく、後で戻ってきます。 Marc:OPには10ページしかないと言われているので、私はスケーラブルなソリューションではなく、簡単なソリューションを選択します。 –

0

あなたは、クライアントと一緒にランダムIDを渡すことができます次のページに移動し、次のページに到着したときにそのランダムIDを確認します。私はこれがPHPセッションを使用するのと同じことだと思います。 http://us.php.net/manual/en/book.session.php

0

私は、データベースに答えた質問の数を格納してheaderコマンドを使用してそのページにリダイレクトすることで問題を解決しました。

+0

各ページで、(回答数=現在の質問-1)かどうかを確認します。本当に表示するかどうかは、ユーザーが実際にすべきページにリダイレクトされます。 –

関連する問題