-1

以下は、私が現在使用しているコードです。

  $form = "
  <form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>
  <table>
  <tr>
  <td>Username</td>
  </td><input type='text' name='user' value='$getuser' /></td>
  </tr>
  </table>
  </form>";

  ?>

上記のコードは私にこのエラーを与えています:

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in ... on line 27

this:["PHP_SELF"]を thisに変更する['PHP_SELF']と、次のエラーが表示されます。

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ... on line 27

上記のフォーム アクションを修正して、解析エラーが返されないようにするにはどうすればよいですか?

4

4 に答える 4

6

次から変更します。

<form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>

に:

<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>

二重引用符で囲まれた文字列を使用して HTML を作成しています。そのため、PHP が二重引用符"PHP_SELF"で区切られているのを見ると、最初の引用符で文字列が終了すると見なされます。次に、 を解析しようとしますが、解析PHP_SELFできません。

詳細については、文字列に関するドキュメントを参照してください。

于 2012-08-17T20:09:45.710 に答える
4

変化する:

<form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>

<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>

既に PHP を使用して文字列を作成しているため、文字列内のエコーは必要ありません。

于 2012-08-17T20:09:58.300 に答える
4

変数を削除し$form、HTML コードを PHP の閉じ括弧の外側に配置します。

<?php
//php code

?>

<form action="<?php echo htmlentities($_SERVER["PHP_SELF"]);?>" method="post">
<table>
<tr>
<td>Username</td>
</td><input type='text' name='user' value='<?php echo $getuser; ?>' /></td>
</tr>
</table>
</form>
于 2012-08-17T20:12:07.267 に答える
2

.この行でPHPの連結に使用するのを忘れました

<form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>

あなたは書くべきです

<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>
于 2012-08-17T20:11:14.917 に答える