プログラマであれば誰でもフォーラムに参加しており、フォーラムの登録ユーザーである必要があります。フォーラムでのユーザー登録の手順はいくつかの部分に分かれています。
最初のステップは契約ページです。この契約に同意することによってのみ、次の登録ステップに進むことができます
ステップ2: フォーム入力ページでユーザーの登録情報を入力します
ステップ 3: 登録結果ページ、登録の成功を促すメッセージ
実際の作業では、この種の登録ページを開発して実装したい場合は、多くの問題に注意する必要があります:
1 ユーザーは「最初のステップ」をスキップし、規約ページを読まず、2ステップ目のURLから直接フォーム入力ページにアクセスします。
2. ユーザーが「第 3 ステップ」を完了すると、ページを更新し続けます。ユーザーが入力した情報は、更新されるたびに再保存されます
。
3. ユーザーが「第 3 ステップ」を完了したら、「戻る」をクリックして情報を変更し、再度送信します。
このようなフォームは Web 開発の過程でよく発生します。ポイント 3 に関しては、現在のほとんどすべてのフォーラムでこの問題が発生します。しかし、上記の問題はどうすれば回避できますか?
今日、上司から、要件を満たすファイルを誰でもアップロードできるファイル アップロード ツールの作成を手伝ってほしいと頼まれました。これは、私が行ったユーザー登録プロセスと同じで、3 つのステップに分かれています。以前にも同様のことを行いましたが、アンチリフレッシュメカニズムは適切に設計されていません。とにかく、今日は何もすることがないので、少し調べて、上記の問題を回避するコードを実装する方法を確認します。
--------------------------------------------------
--------------------------------------------------
以下は、上記の問題を回避するために個人的に設計した実装コードです。ブラウザから register.php にアクセスする場合、「ユーザー名」と「アドレス」を両方とも空にすることはできず、エラーが表示されます。情報; 両方の入力ボックスが空でない場合、送信は成功する可能性があります。送信が成功したら、更新して戻って効果が得られるかどうかを確認できます。
ファイル 1: config.inc.php
//セッションを開始します
session_start();
//ローカルキャッシュを行わないように設定します
header('Expires: '.date('D,d M Y H:i:s',mktime(0,0,0,1,1,2000)).' GMT');
header('Last-Modified:'.gmdate('D,d M Y H:i:s').' GMT');
header('キャッシュ制御: プライベート、キャッシュなし、必須再検証');
header('プラグマ: キャッシュなし');
?>
ファイル 2: register.php
require_once "config.inc.php";
if(isset($_SESSION[ステップ2]) && isset($_POST[ステップ2])) {
//登録の最後のステップ
$errorStr = formStep3();
if($errorStr!=null){
require_once('step2.html');
}その他{
require_once('step3.html');
unset($_SESSION[ステップ2], $_SESSION[ステップ1]);
}
} else if(isset($_SESSION[step1]) && isset($_GET[step1])) {
//登録の第二ステップ
require_once('step2.html');
$_SESSION[ステップ2] = 1;
} 他 {
www.bkjia.com