以下是我目前使用的代码:
$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
如果我将此更改为["PHP_SELF"]
到此['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
如何修复上面的表单操作,以便它停止返回并显示解析错误?
答案 0 :(得分:6)
从以下位置更改:
<form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>
为:
<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>
您正在使用双引号字符串构建HTML;所以当PHP看到分隔"PHP_SELF"
的双引号时,它假设第一个终止你的字符串。然后它尝试解析PHP_SELF
,但不能这样做。
请参阅字符串上的documentation以获取进一步参考。
答案 1 :(得分:4)
变化:
<form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>
到
<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>
您已经使用PHP并构建字符串,因此不需要字符串中的回声。
答案 2 :(得分: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>
答案 3 :(得分:2)
您忘记在此行使用.
在PHP中进行连接
<form action='echo htmlentities($_SERVER["PHP_SELF"]);' method='post'>
你应该写
<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>