0

私の開発者は、URL の文字列に基づいてログインが失敗したときに div を表示する登録ページを作成しました。

ログインが失敗すると、これが URL に追加されます/login?msg=invalid

msg= パラメータに基づいてエラー メッセージを表示する login.phtml の PHP は、次のとおりです。

<?php 
$msg = "";
$msg = $_GET['msg'];
if($msg==""){ $showMsg = ""; }
elseif($msg=="invalid"){ $showMsg = '            <div class="alert alert-error">
        <a class="close" data-dismiss="alert">×</a>
        <strong>Error!</strong> Login or password is incorrect!
    </div>'; }
elseif($msg=="disabled"){ $showMsg = "Your account has been disabled."; }
elseif($msg==2){ $showMsg = "Your account is not activated. Please check your email."; }
?>

コントローラーでは、その URL へのリダイレクトは

        else //email id does not exist in our database
        {
            //redirecting back with invalid email(invalid) msg=invalid.
            $this->_redirect($url."?msg=invalid");
        }

無効になったアカウントなどには、他にもいくつかの検証タイプがあることを知っています。現在、インターフェイス全体を再設計中であり、ログインが失敗したときに div タグが表示されるが URL は表示されないように、この種の検証を取り除きたいと考えています。文字列。

表示したい新しいdivが重要な場合は

<div class="alert alert-error alert-login">
    Email or password incorrect
</div>

login.phtml とコントローラーの php myself を置き換えたいのですが、良いプログラマーではありません。$this->_redirect($url."?msg=invalid");URL に文字列が追加されず、適切な div タグが表示されるようにするには、何を置き換えることができますか?

ありがとう

4

2 に答える 2

0

パラメータを通過させるのmsgGET私には少し奇妙です。

ここsessionsで、、cookiesまたはdatabaseを使用してページにメッセージを送信する他の方法について説明しているこのスレッドを参照してください。

私はzendフレームワークに精通していませんが、セッションを通じて「フラッシュ」メッセージを設定する方法が必要です。

于 2012-12-09T03:49:46.567 に答える
0

コントローラーの loginAction でこれを変更します

$this->_redirect($url."?msg=invalid");

$this->view->message = $msg;

次に、コードに login.phtml を追加します

<?php if ($this->message) :?>
  <div class="alert alert-error alert-login">
  Email or password incorrect
  </div>
<? endif; ?>
... your form code there
于 2012-12-09T17:01:42.300 に答える