PHP で HTML フォームを使用して単一および複数のフォーム値にアクセスする_PHP チュートリアル
HTML フォームを通じてユーザーが送信した情報をより簡単に操作できる機能は、常に PHP の強みの 1 つです。実際、PHP バージョン 4.1 では、この情報にアクセスするための新しいメソッドがいくつか追加されており、以前のバージョンから最も一般的に使用されていたメソッドの 1 つが事実上削除されています。この記事では、PHP の古いバージョンと新しいバージョンの両方を使用して、HTML フォームで送信された情報を操作するさまざまな方法を検討します。この記事では、単一の値を研究することから始めて、次に、一般に使用可能なフォーム値にアクセスできるページを構築します。 注: この記事は、PHP バージョン 3.0 以降を実行している Web サーバーにアクセスできることを前提としています。 PHP 自体と HTML フォームの作成についての基本的な理解が必要です。 HTML フォーム この記事を読むと、さまざまなタイプの HTML フォーム要素が PHP がアクセスできる情報をどのように提供するかがわかります。この例では、2 つのテキスト フィールド、2 つのチェックボックス、および複数の項目を入力できる選択ボックスで構成される単純な情報フォームを使用しました。 リスト 1. HTML フォーム
ミッション情報
不在時指定されたメソッドの場合、フォームはデフォルトのメソッド GET を使用します。これは、以下に示すように、ブラウザによってフォームの値を URL に追加するために使用されます。 http://www.vanguardreport.com/formaction.php?ship= Midnight+Runner&tripdate=12-15-2433&exploration=yes&crew=snertal&crew=gosny 図 1 はフォーム自体を示しています。 図 1. HTML フォームの古い方法: グローバル変数へのアクセス リスト 2 に示すコードは、フォーム値をグローバル変数として処理します: リスト 2. フォーム値をグローバル変数として処理します "; echo "Tripdate = ".$tripdate; echo "" ; echo "Exploration = ".$exploration; echo "
"; echo "Contact = ".$contact; ?> 生成された Web ページには、送信された値が表示されます: Ship = Midnight Runner Tripdate = 12-15-2433 = yes Contact = (後で説明するように、リスト 2 の表記は確かに便利ですが、PHP ディレクティブ register_globals が以前のバージョンに設定されている場合にのみ使用できます。 4.2 では、これがデフォルト設定であり、多くの PHP 開発者はこの問題に気づいていませんでしたが、バージョン 4.2 以降では、 register_globals のデフォルト設定が off になっており、この場合、変数が正しく動作しません。ただし、これらの変数は他の方法で初期化できます。共有サーバーを使用する多くの開発者は、サーバー全体のこの値を変更できません。 .htaccess ファイルにアクセスできる場合は、次のディレクティブを追加して register_globals を有効にすることができます。この機能が利用可能かどうかは不明であるため、開発者は次のことを行うことをお勧めします。システムがバージョン 4.1 以降を実行している場合、この関数を使用してグローバル変数コレクションを選択的に登録することもできます。必要に応じて、get、post、cookie の値をインポートし、各項目にプレフィックスを追加します。 "; echo "Exploration = ".$formval_contact ?> ここで、post 値がインポートされます。 c を使用して Cookie 値をインポートします。p は g の後に続くため、post 値は同じ名前の get 値を上書きします。 しかし、多くの開発者と同様に、バージョン 4.1 以降を実行していない場合はどうなるでしょうか? フォーム値のコレクションへのアクセス 古いバージョンを実行している場合、またはグローバル変数を使用したくない場合は、$HTTP_GET_VARS 配列と $HTTP_POST_VARS 配列を使用するオプションがあります。これらのコレクションは非推奨になりましたが、依然として利用可能であり、依然として広く使用されています。これらが使用されなくなった場合は、バージョン 4.1 で追加された $_GET 配列と $_POST 配列に置き換えられます。 これら 2 種類の配列の型はハッシュ テーブルです。ハッシュ テーブルは、整数ではなく文字列値によってインデックスが付けられた配列です。フォームを操作する場合は、リスト 3 に示すように、名前で値にアクセスできます。 ハッシュ テーブル $ship_value = $HTTP_GET_VARS[ship]; echo $ship_value; "; $tripdate_value = $HTTP_GET_VARS[tripdate]; echo $tripdate_value; echo "
"; $exploration_value= $HTTP_GET_VARS[exploration]; echo $exploration_value; echo "
""; $contact_value = $HTTP_GET_VARS[contact]; echo $contact_value; ?> このメソッドを使用すると、各フィールドの値を名前で取得できます。単一の名前、複数の値今まで、各名前は 1 つの値にのみ対応していました。たとえば、乗組員の種のリストボックスでは、複数の値をクルーという名前で送信できるので、値を明示的に取得できるようにする必要があります。 HTML ページを少し変更します。crew[] のように、配列として送信されるフィールドには角括弧で名前を付ける必要があります。 リスト 4. HTML ページを変更します... ... 1 回変更を加えると、フォームの値を取得すると実際には配列になります。 リスト 5. 変数に配列としてアクセスする... $crew_values = $HTTP_GET_VARS[crew] echo "0) ".$crew_values[0] ; echo "
"; echo "1) ".$crew_values[1]; echo "2) ".$crew_values[2]; ... ページを送信すると、複数の値が表示されます。 0) snertal 1) gosny 2 ) 最初に注意すべきことは、これは 0 から始まるインデックスの配列であるということです。最初に見つかった値は位置 0 にあり、次の値は位置 1 にあります。この場合、I のみです。値が 2 つ送信されるため、3 番目の項目は空になります。通常、送信される項目の数はわかりません。そのため、配列であることを利用して、sizeof() 関数を使用して値の数を決定できます。リスト 6. 配列のサイズを決定する... for ($i = 0; $i "; } ... ただし、値が多すぎるのではなく、値がまったく存在しないという問題が発生することがあります。 チェックボックスは、存在する場合にのみ送信されます。実際に選択されているかどうかは、チェックボックスが消えていることによってわかります。現実: ユーザーがチェックボックスをクリックしていない場合は、isset() 関数を使用して値が設定されているかどうかを明示的に確認できます。チェックボックスが送信されました... $contact_value = $ HTTP_GET_VARS[contact]; echo $contact_value; if (isset($contact_value)) { //チェックボックスがクリックされました } else { //チェックボックスがクリックされませんでした } ... すべてのフォームを取得値 チェックボックス フィールドは、フォームから期待されるものです。値の名前が完全に確実ではない可能性がある状況の例です。多くの場合、すべてのフォーム値に共通の方法でアクセスするルーチンがあると便利です。 幸いなことに、$HTTP_GET_VARS とその類似物は単なるハッシュ テーブルであるため、配列のいくつかのプロパティを使用して操作できます。たとえば、array_keys() 関数を使用して、すべての潜在的な値名のリストを取得できます。 リスト 8. フォーム値名のリストを取得します... $form_fields = array_keys($HTTP_GET_VARS) for ($i = 0; $i "; } else { echo $thisField ." = ". $thisValue; }実際に送信されたすべてのデータ データ: ship = Midnight Runner tripdate = 12-15-2433 exploration = yes crew = snertal crew = gosny 最後に 1 つ注意してください: これで、送信するあらゆるフォーム値を収容できるフォーム アクション ページが完成しました。少し考えてみる必要があります。これは、PHP プログラマーを驚かせることがよくあります。 場合によっては、図 2 に示すように、設計者は送信ボタンの代わりにグラフィカル ボタンを使用することを選択します。そのコードはリスト 10 に示されています。 リスト 10. グラフィック ボタンを追加する ... Crew sp

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

ReactはJSXとHTMLを組み合わせてユーザーエクスペリエンスを向上させます。 1)JSXはHTMLを埋め込み、開発をより直感的にします。 2)仮想DOMメカニズムは、パフォーマンスを最適化し、DOM操作を削減します。 3)保守性を向上させるコンポーネントベースの管理UI。 4)国家管理とイベント処理は、インタラクティブ性を高めます。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。
