2

action_register新しいユーザーを登録しようとする関数があります。成功した場合、ユーザーをログイン フォーム ( で表示action_login) に転送したいと考えています。ただし、 「あなたのアカウントが作成されました。ログインしてください」のようなメッセージをログイン ビューに送信$messageしたいと思います。$message_type

これを行う最善の方法は何ですか。最良とは、保守可能で、クリーンで、安全であることを意味します。

今までの私の考え:

  • ルーティング先の URL にデータを POST しaction_login、リダイレクトします。
  • action_loginデータをコントローラー メソッドに直接送信し、いつものようにレンダリングする方法を見つけます。
4

2 に答える 2

1

この場合のメッセージは(登録後)一度だけ表示されますが、今後、あなたのプロジェクトにはこのようなメッセージがたくさん表示されると思います。

そのことを実行し、再利用可能にするために、コードのスニペットを作成する必要があります-結果として何かを実行した後、メッセージをセッション変数に保存してから、他のアクションにリダイレクトする必要があります例:

    $_SESSION['msg'] = 'Your account has been created, please log in';
  • 画面の宛先で、そのセッション変数が設定されているかどうかを確認し、セッション変数に保存されたメッセージを出力してクリアします。

            <?php
            if(isset($_SESSION['msg']){
            ?>
            <script>
            //call some javascript function to display popup for example
            var msg = '<?php echo $_SESSION['msg']; ?>';
            display_popup_message(msg);
    
            function display_popup_message(msg){
                alert(msg);
            }
            </script>
            <?php
            unset($_SESSION['msg']);
            }
            ?>
    
于 2013-04-10T15:15:42.687 に答える