0

我还是 PHP、HTML 或 Javascipt 的新手。我试图找到有关此问题的解决方案。

我收到了这个错误

<?php echo $_GET["q"]; ?>解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,尝试在 echo中显示时需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING 。

原始代码

<input type="hidden" name="q" value="<?php echo $_GET["q"]; ?>" /><input type="submit" name="ResetPasswordForm" value=" Reset Password " />

当更改为回声

echo "<input type=\"hidden\" name=\"q\" value=\"<?php echo $_GET[\"q\"]; ?>\" /><input type=\"submit\" name=\"ResetPasswordForm\" value=\" Reset Password \" />\n";

有人可以帮助我或解释原因吗?谢谢..

4

3 回答 3

1

您不能在 echo 语句中包含 echo 语句。

value=\"<?php echo $_GET[\"q\"]; ?>\"

应该

value=\"$_GET["q"]\"

或者

value=\"" . $_GET["q"] . "\"
于 2013-11-12T20:36:02.913 回答
0

将其更改为:

echo "<input type=\"hidden\" name=\"q\" value=\"" . $_GET['q'] . "\" /><input type=\"submit\" name=\"ResetPasswordForm\" value=\" Reset Password \" />\n";
于 2013-11-12T20:36:10.140 回答
0

下面的其他答案对您的问题是正确的,但您可能需要了解 PHP 如何以这种方式使用(又称动态 HTML)。当 Web 服务器获取基本脚本时,所有的 PHP 都被解释和执行。结果输出被传递给客户端(浏览器)进行渲染。因此,如果您正在执行回显以输出一些 html,例如输入元素,就像您的示例一样,您不需要更多的 PHP 标记,但是有不同的方法可以给猫换皮。

您可以逐行回显所有 html(包括 Javascript),或者您可以跳入和跳出 PHP - 就像您对 value 属性所做的那样:

IE:

echo "<input type=\"hidden\" name=\"q\" value=\"" . $_GET['q'] . "\" /><input type=\"submit\" name=\"ResetPasswordForm\" value=\" Reset Password \" />\n";

或者

<?php
:
...some PHP stuff ...
:
//then pop out of PHP to do your html raw (maybe with a little bit of PHP mixed in)
?>
<input type="hidden" name="q" value="<?php echo $_GET['q']?>" />
<input type="submit" name="ResetPasswordForm" value=" Reset Password " />
<?php
:
.... some more PHP stuff....
:
?> 

你如何混合它取决于最容易维护的东西等。

于 2013-11-12T21:03:04.700 回答