0

私は単純な連絡先フォームを作成しています。フォームは、ユーザーがブラウザーで Javascript を無効にした場合に備えて、jQuery を使用したクライアント側の検証と PHP を使用したサーバー側の検証を行っています。

単一のページで処理および表示できるソースコードの例はたくさんありますが、たとえばそのようなタスクを実行するために、それらをform.phpvalidator.phpに分けている例はあまり見たことがありません。

このform.phpファイルは、 validator.phpから取得したエラーまたは成功メッセージを受信/表示するいくつかの php コードでフォームをマークアップするために、ほとんどが html で記述されています。今、私が抱えている問題は、これら2つをリンクして、文句を言わずにお互いに話すことです.

「フォーム」属性には、validator.php に割り当てられたアクションがあり、validator.php には、次のような関数の 1 つがあります。

if (isset($error)) {
    $msg = "<p>Please enter valid information.</p>";
    require ("form.php"); 
}

そして、form.phpで宣言し、 validator.phprequire ("validator.php");からこの$msg変数を使用してメッセージを表示しましたが、検証が実行され、文字列が定義されていても、ブラウザーは $msg が未定義であると不平を言います。

これを見ると、これら 2 つの php ファイルが正しくリンクされていないと思います。誰でも解決策を考えていますか?

4

4 に答える 4

1

require実際には、「validator.php」を「form.php」ファイルにコピーした場合と同じなので、これは問題になりません。変数は、インクルード ファイル内で「親」と同じスコープを共有します。ただし、「validator.php」を「form.php」に含めてrequire("form.php") 、そのコードから呼び出すのは得策ではありません。無限ループになります。

PSそして、を使用している場合require、「同じページにない」とは言えません。それは同じページであり、ユーザーにとっては同じ URL です。これは 2 つの異なるファイルです。

于 2013-07-01T05:42:33.613 に答える