質問

しているphpファイルを含んだHTML、PHPのロジック、そしてドキュメントを編集するには、フッターで---の順になりました。

のような価値をフォームから入すが、リクエストの検証の論理を示のページをフッター) <?php VALIDATION LOGIC HERE ?>.

問題なのは、検証がエラーが発生すると、php論理型()およびそれゆえ私のHTMLフッターは実行されません。

がわかりやすく伝えるための私のHTMLフッター行にもかかわらず、php die();?...やはり全体のより良い方法を統合し、HTMLとPHP?よろしく!Anyhelpうよろしくお願いいたします。


編集:っていdie()のほとんどどこでも思いつつ、データベースに接続す場合はユーザーの認証情報は、内容に間違いがないか確認し、その接続..場合の資格が間違いでdie()..

このため、使用の金型()?その私の問題は戻り()の代わりにdie()...続けるために、処理にHTML footer.

これにより、今まで以上になmysql_connect()またはdie().たいのですが続くと思い加工の残存のHTMLページがdie()が実行される前にデータがHTMLであることを示す。..いと思いmysql_connect()または戻;良い練習す。

ありがとうござい再。にして使用するために設計されてい非常に不安はありません。

役に立ちましたか?

解決

として他の国において複数のファイルheader.php,index.php,footer.php,formvalidator.php.おindex.php ファイルに含めてくださいheader.php やfooter.php.のformタグ、アクションはsettへの負荷formvalidator.php

のバリデータのスクリプトこのようなこと:

  // All form fields are identified by '[id]_[name]', where 'id' is the 
  // identifier of the form type.
  // The field identifier we want to return is just the name and not the id.
  public function getFormData() {
    $formData = array();
    foreach ($_POST as $key => $value) 
    {
      // Remove [id]_ 
      $name = preg_replace('!.*_!', '', $key);

      if (is_array($value)) {
        $formData[$name] = implode(',', $value);
      } else {
        $formData[$name] = $value;
      }
    }
    return $formData;
  } 

またループの配列を検証します。ときにエラーエラーエラーメッセージ、それ以外の形式です。

更新
答えました。

すい""使用型().代わりに、口thefunctionい返し、エラーメッセージを表示します。いつの間にdie()などが分かりすることができます。

できないサーバー検証を実行する形でない限り、"submit"ボタンを押下します。また、コードされたと同一のPHPファイルとして書き出す単純にリロードと同じページにセットするだけで action="<?= $_SERVER['PHP_SELF'] ?>")

したい場合は検証のフィールドに以前に提出することjavascriptを使用、など jQuery.の検証.

Hmm...のように必要なもの知識がミックスPHPとHTML.はい、そういうこともあ 初心者ガイド にとどのような形でクリアしました。

他のヒント

フォーム処理と検証に外部ファイルを使用し、エラー/成功のフォームページにリダイレクトして、エラー/成功メッセージを表示します。

1つのheader.phpと1つのfooter.phpファイルを作成します。エラーがある場合は、ダイの代わりに戻るだけです。

この方法でページの上部に置くことができます:

<?php include('header.php');?>

///put in whatever html there may be


<?php 
/// put your form and processing info here
///just return if you need to prevent further processing
?>

///put in whatever html there may be
<?php include('footer.php');?>

あなたがしていることをするためのより良い方法はたくさんあります。ただし、最初の質問に答えるには、フッターに表示する必要があるHTMLを使用して文字列を返すフッターと呼ばれる関数を作成し、ダイ(footer())を呼び出すことができます。しかし...なぜあなたは死ぬのですか?エラーを数えて結果のどこかに表示することはできませんか?そのようにスクリプトを殺さないでください。

そして、2番目の質問のために。 Benthedesigner氏によると、フォームアクションを備えたHTMLページを使用して、PHPスクリプトを検証し、何かがうまくいかなかった場合にフォームを返すか、そうでない場合は他の場所に行くことができます。しかし、そこにも、die()関数を削除し、他の何かを呼び出してリダイレクトする必要があります。 Smartyなどのテンプレートシステムを使用して、HTMLプレゼンテーションからロジックを分離できます。すべてを1つのファイルに記述できますが、ファイルの上部にロジック全体と下部にあるすべてのHTMLを記述してみてください。そして使用しますu003C?=$var?>PHPのものを表示するには、または異なるHTML結果の単純な条件を表示します。ただし、Die()を使用しないでください。それは私が推測するものを複雑にするだけです。

Die()を使用することは、サイトにアクセスするユーザーに友好的なメッセージを表示しないため、良い練習ではありません。あなたは死ぬことを絶対に確信するべきです。たとえば、ハッキングの試みがあると思われる場合は、手順で使用できます。代わりに、物事を表示または非表示にするために他の構造の場合を使用してみてください。実装する可能性のあるプロトタイプは次のとおりです。

  // if there is a validation error, show it, otherwise not
  if ($error == true)
  {
    // show footer
  }

  <!-- Your footer goes normally here -->
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top