2011-08-11 19 views
0

私は、次のしているPHPコード:PHPエラー表示位置。

  if($_SESSION['msg']['login-err']) 
      { 
       echo '<p class="error">'.$_SESSION['msg']['login-err'].'</p>'; 
       unset($_SESSION['msg']['login-err']); 
      } 

すべての作業罰金。エラーのある「P」は要素内に正しく表示されます。

私の質問は、どこにエラーを表示するかを指定する方法です。

E.G. れない形態内の最初の要素としてではなく、例えば

  • ための第二のよう

    • だけ<input name="user" />

    前?

    ご迷惑をおかけして申し訳ございません。

  • 答えて

    2

    エラーを表示して同時にエラーを表示する(やや単純に)ため、ページ内のコードを下に移動するだけで、表示する場所でテスト/出力が行われるようにする必要があります。

    理想的には、ロジックからディスプレイコードを切り離す必要があります。エラーを保存して、レンダリングするテンプレートに渡される変数$errorsに表示します。

    +0

    これはまさに私がやっていることです。コードに貼り付けたのはちょっとです。私は、移動するコードは最もシンプルであることを知っています - しかし、それを行うためのプログラミングの方法はありますか? – Iladarsda

    +0

    私が言及した第2段落は、「よりプログラミングする」方法です:あなたのプレゼンテーションロジックをコントローラロジックから外す。ビジネスロジックをモデルに展開します。 MVCアーキテクチャで読んでください。現時点で使用されているセキュリティ上の問題の – meagar

    +0

    ?それとも、プログラミングが悪いですか? – Iladarsda

    1

    よりもむしろそれが今存在し、なぜこのような何かにあなたのコードを変更しないエコー置く:

    $error; 
    if($_SESSION['msg']['login-err']) 
    { 
        $error = $_SESSION['msg']['login-err']; 
        unset($_SESSION['msg']['login-err']); 
    } 
    

    その後、右のあなたのinputタグの上に、このような何かをする...

    <?php echo $error;?> 
    

    エラー処理を行う最善の方法ではありませんが、それはあなたが求めていることを行うはずです。

    1

    「どこ」はフロントエンドのデザインによって異なります。

    ログインフォームでは、フォーム全体の上部または下部にエラーを表示することをお勧めします。連絡先/登録フォームでは、フィールドの横に(上または左に)エラーを表示する方が理にかなっています。

    ロジックとプレゼンテーションのこの組み合わせはまったく異なるものです。 コードの各部分は、を変更する理由が1つのみである必要があるため、それらを分離する必要があります。あなたの作品には2つの理由があります:デザインまたはロジック。

    一般的にMVCとOOPでいくつかの拡張スタディを行っていれば、多くのことが得られます。

    関連する問題