有人可以解释这两个陈述之间的区别:
<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">
和
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
我没有看到行为上的差异。
答案 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">