Php动作与" echo"的差异

时间:2014-05-10 20:31:21

标签: php action

有人可以解释这两个陈述之间的区别:

<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">

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

我没有看到行为上的差异。

2 个答案:

答案 0 :(得分:2)

第一个示例将输出,因为htmlspecialchars不输出任何内容,它只返回已处理的内容。

<form method="post" action="">

只需将表单提交到当前页面即可。

第二个例子将输出类似

的内容
<form method="post" action="page.php"> 

page.php是当前脚本的位置(请参阅here)。

因为空白操作将表单提交到当前页面,并且使用您的echo语句将打印出到当前页面的路由,这两个将导致相同的事情。

答案 1 :(得分:2)

区别很简单。

如果代码没有打印任何东西,那么第一件。

<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">

因此action参数为空,默认情况下,浏览器会将表单提交到同一网站,可能会返回相同的值htmlspecialchars($_SERVER['PHP_SELF']);

如果您使用第二段代码,htmlspecialchars($_SERVER['PHP_SELF']);的返回将被回显,浏览器将表单提交到同一站点,如上所述。

示例

如果您的网站名为form.php。第一段代码将产生:

<form method="post" action="">

浏览器看到操作为空,并将表单数据发送到网站form.php

第二部分会产生:

<form method="post" action="form.php">