【问题标题】:echo htmlspecialchars($_SERVER["PHP_SELF"]) from inside PHP echo从 PHP echo 内部回显 htmlspecialchars($_SERVER["PHP_SELF"])
【发布时间】:2016-06-27 19:40:31
【问题描述】:

我正在尝试使用 php 创建一些动态内容,因此我将 html 代码回显到我的网页中。但是,当我尝试在表单内的操作标签内插入 <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> 时,很可能由于某种解析错误,不需要的可见文本会打印到我的页面上。

我的例子如下。

echo'<form name="PArtifact" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
     <input name="printArtifactBut" type="submit"  value="Print Artifact">                
     </form>';

上面的代码将生成“>”作为可见文本。有人能告诉我在回显中回显htmlspecialchars($_SERVER["PHP_SELF"]) 的正确方法吗?

【问题讨论】:

  • 别打扰了。默认的表单动作已经是你的当前页面,只要不带动作属性就行了。
  • 为什么&lt;?php 里面有echo编辑:我的意思是,如果是echo,则不需要&lt;?php echo,或者如果您使用的是&lt;?php,则不需要开头的回声。
  • 这是因为我正在动态创建一个按钮来调用页面

标签: php html


【解决方案1】:

您已经打开了 PHP,并且您已经在 echo 表达式中。你只需要concatenate数据:

echo '<form name="PArtifact" method="post" action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '"></form>';

但正如我在 cmets 中所说,这是不必要的,因为默认情况下表单操作已经是 this。


实现你的意思的其他方法是退出 php 部分:

?>
<form name="PArtifact" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
  <input name="printArtifactBut" type="submit"  value="Print Artifact">                
</form>
<?php

【讨论】:

  • 谢谢,这解决了问题:)
【解决方案2】:

您的问题归结为对 PHP 工作原理的根本误解。绝对没有必要在回声中有回声;这个概念本身就是不合逻辑的。如果您需要在回显中调用函数,只需关闭正在回显的字符串,使用点将函数调用附加到字符串。然后是另一个点,用另一个引号再次打开字符串,然后从你离开的地方继续。

echo'<form name="PArtifact" method="post" action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">
 <input name="printArtifactBut" type="submit"  value="Print Artifact">                
 </form>';

但是在这种情况下,正如其他人已经说过的那样,您甚至不需要这样做,因为在表单的 action 属性中使用 PHP_SELF 是多余的——这是 @ 的默认值无论如何,987654324@。因此,对于这种情况,您可以简单地忽略这一点:

echo'<form name="PArtifact" method="post" action="">
 <input name="printArtifactBut" type="submit"  value="Print Artifact">                
 </form>';

...无论如何,您将获得与您想要的完全相同的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多