質問: Web ページでフォームを送信した後、PHP が送信されたコンテンツを取得できないのはなぜですか?ただし、古いバージョンの PHP では正常に動作します。
PHP の新しいバージョンでは、元のフォーム コンテンツの処理方法が廃止されました。つまり、送信されたフォームのコンテンツを同じ名前の変数に直接コピーすることはなくなりました。
解決策は 4 つあります:
1. php.ini を変更し、register_globals を見つけて、その値を On に変更します。この方法では、以前と同じにすることができます。たとえば、送信されたフォームに「username」という名前の変数が含まれている場合、$username を使用して PHP でその変数に直接アクセスできます。ただし、古いコードを使用していて互換性の問題がある場合を除き、この方法はお勧めできません。
2. $HTTP_GET_VARS、$HTTP_POST_VARS 配列を使用してアクセスします。たとえば、$HTTP_POST_VARS["username"] の形式で書き込みます。ただし、この方法はお勧めできません。
3. (推奨) $_POST、$_GET などの配列を使用してアクセスします。たとえば、$_POST["username"] の形式で書き込みます。このアプローチをお勧めします。
(推奨) import_request_variables 関数を使用します。この関数は、送信内容を変数にインポートします。
たとえば、 import_request_variables("gp", "rvar_"); 最初のパラメータは g、p、c を選択できます。これは、それぞれ GET、POST、COOKIE 変数をインポートすることを意味します。上記のステートメントを実行した後、$rvar_username を使用して、送信されたユーザー名変数にアクセスできます。以前の PHP プログラムと互換性を持たせるには、 import_request_variables("gp", ""); を使用します。
PHP の $_GET 変数と $_POST 変数は、ユーザーが入力した情報など、フォーム内の情報を取得するために使用されます。
PHPフォーム操作
HTML フォームと PHP フォームを扱うとき、覚えておくべき重要なことは、HTML ページ内のフォーム要素はすべて PHP スクリプトで自動的に使用できるということです。
フォーム例:
リーリー
上記の HTML ページには 2 つの入力フィールドと送信ボタンが含まれています。ユーザーが情報を入力して送信ボタンをクリックすると、フォームのデータが「welcome.php」ファイルに送信されます。
「welcome.php」ファイルは次のようになります:
リーリー
上記のスクリプトは次の結果を出力します:ジョンさん、ようこそ
PHPの$_GET変数と$_POST変数については以下で詳しく説明します。
フォーム検証[フォーム検証]ユーザーが入力した情報は、可能な限りブラウザ上のクライアント スクリプト プログラム (JavaScript など) を通じて検証する必要があります。ブラウザを通じて情報の有効性を検証すると、効率が向上し、サーバーへのダウンロードの負荷が軽減されます。
ユーザーが入力した情報をデータベースに保存する必要がある場合は、サーバー側での検証を考慮する必要があります。サーバー上の情報の有効性を検証する最善の方法は、フォーム情報を検証のために他のページに転送するのではなく、検証のために現在のページに送信することです。上記の方法により、フォームにエラーがある場合、ユーザーは現在のページでエラー情報を直接取得できます。これにより、エラー メッセージの存在を検出しやすくなります。
PHP $_GET 変数は、get メソッドを通じてフォームから「値」を取得します。
$_GET変数
$_GET 変数は、名前 [名前] と値 [値] を含む配列です (これらの名前と値は HTTP GET メソッド経由で送信され、悪用される可能性があります)。$_GET変数は「method=get」を使用してフォーム情報を取得します。 GET メソッド経由で送信されたメッセージは表示され (ブラウザのアドレス バーに表示されます)、長さ制限があります (メッセージの合計の長さは 100 文字を超えることはできません)。
ケース リーリー
ユーザーが「送信」ボタンをクリックするとURLが表示されます「welcome.php」ファイルは、「$_GET」変数を使用してフォーム データを取得できます (注: フォーム フィールド [フォーム フィールド] の名前は、「$_GET」配列の ID キーワードとして自動的に使用されます)。
ようこそ 。
なぜ「$_GET」を使用するのですか? ポイント: 「$_GET」変数を使用すると、すべての変数名と変数値が URL アドレス バーに表示されるため、送信する情報にパスワードやその他の機密情報が含まれる場合、この方法は使用できなくなります。 。 方法。すべての情報は URL アドレスバーに表示されるので、お気に入りのラベルとして置くことができます。これは多くの状況で非常に役立ちます。
注: 送信する変数値が大きすぎる場合、HTTP GET メソッドは適用できません。送信される情報の量は 100 文字を超えることはできません。
$_REQUEST変数 PHP $_REQUEST 変数には $_GET、$_POST、$_COOKIE の内容が含まれます。
PHP $_REQUEST变量可以用来获取通过“GET”和“POST”这两种方法发送的表单数据。
案例
Welcome <?php echo $_REQUEST["name"]; ?>.
You are <?php echo $_REQUEST["age"]; ?> years old!
PHP $_POST变量的作用是:获取method = “post”方法发送的表单变量。
$_POST变量
$_POST变量是一个包含名称[name]何值[value]的数组(这些名称和值是通过HTTP POST方法发送的,且都可以利用)
$_POST变量使用“method=POST”来获取表单信息。通过POST方法发送的信息是不可见的,并且它没有关于信息长度的限制。
案例
<form action="welcome.php" method="post"> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form>
当用户点击“提交Submit”按钮后,URL中不会包含任何表单数据
“welcome.php”文件可以使用“$_POST”变量来获取表单数据(注意:表单栏[form field]内的名称将会自动作为“$_POST”数组中的ID关键词):
Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old!
为什么要使用$_POST?
通过HTTP POST发送的变量不会在URL中显示出来
变量的大小没有限制
然而,因为变量不能在URL中显示出来,所以也不可能把这个页面作为标签储存在收藏夹里。
$_REQUEST变量
PHP $_REQUEST变量包含$_GET, $_POST, and $_COOKIE的内容
PHP $_REQUEST变量可以用来获取通过“GET”和“POST”这两种方法发送的表单数据。
案例
Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!
以上这篇提交表单后 PHP获取提交内容的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持帮客之家。