4

私は、htmlフォームとphp処理がどのように機能するかを学び、理解しようとしている初心者です。

このペアの例に出くわしました:

HTMLフォーム:

<html>
<body>

  <form action="hello-web.php" method="GET">
  <label>Name:</label>
  <input type="text" name="yourName" size="24">
  <input type="submit">
  </form>

</body>
</html>

PHP プロセッサー:

<?php
$fname = $_GET["yourName"];

echo "Hello $fname!";
?>

出力は次のようになります: Hello Entered/Example Name!

質問: 変数"yourName" (HTML ファイルと PHP ファイルの両方) を、たとえば"typeName"に変更しようとすると、フォームに入力した名前が表示されません。

つまり、出力は次のようになります。 Hello !

「yourName」は標準の php または html 変数ですか? あなたが望むものに変えることはできませんか?

さらに良いことに、フォームはどのように正確にデータを処理しますか?


入力した名前を出力しない変更されたコードを次に示します(回答にコメントとして貼り付けると、すべてのコードが段落のように連続した行として表示されるため、ここに回答として投稿しました:

HTML FORM(変更された--typeName):

<html>
<body>

  <form action="hello-web.php" method="GET">
  <label>Name:</label>
  <input type="text" name="typeName" size="24">
  <input type="submit">
  </form>

</body>
</html>

PHP プロセッサ (変更された --typeName):

<html>
<body>
<?php
$fname = $_GET["typeName"];

echo "Hello $fname!";
?>

</body>
</html> 
4

2 に答える 2

1

配列全体を出力することにより、送信されたフォームから利用できるデータを確認できます。フォーム メソッドはGETであるため、送信されたすべてのものが次のように表示されます。

var_dump( $_GET );

このことから、PHP スクリプト内の変数名を確認できます。

Array
(
  [YourName] => Jonathan
)

送信されているものと期待しているものとの間の断絶に遭遇したときはいつでも、チェックしてください$_GET(または、メソッドがPOSTである場合は、 をチェックします$_POST)。

たとえば、次のことを試していたとします。

echo $_GET["yourName"]; // nothing output to the screen

上記の配列の内容を参照すると、正しいキーが "YourName" であることがわかります。

echo $_GET["YourName"]; // Jonathan
于 2012-05-03T20:59:38.267 に答える
0

$_GET["yourName"];フォーム フィールドの入力に基づく値が含まれます。これは、php スーパーグローバルhttp://us3.php.net/manual/en/reserved.variables.get.phpです。

HTMLフォームを変更しているように聞こえますが、フォームから値を入力していません。したがって、$_GET["yourName"];空です

于 2012-05-03T20:57:54.187 に答える