表单操作中的相对 url 不会解释 php,完整 url 会。为什么?
Relative url in form action doesn't interpret php, full url does. Why?
我已经安装了 LAMP 服务器(Ubuntu 20.4;PHP 7.4.3)。
如果我使用绝对 URL (http://localhost/try.php) 创建表单并设置操作,则没有问题,但如果我使用相对 url (try.php) 浏览器 (firefox) 告诉我是否要打开 php 文件。
是浏览器的问题还是php设置的问题?
对不起我的英语
示例:我在本地主机中有一个 'index.html' 文件(我使用 Firefox 从 Nautilus 打开它),在这个文件中有一个表单。
这很好用:
<form action="http://localhost/grabar.php" method="post">
<input type="submit">
</form>
这是错误的(firefox 问我如何打开 grabar.php 文件):
<form action="grabar.php" method="post">
<input type="submit">
</form>
另一个发现:如果我通过在导航栏中输入以下内容从 firefox 打开文件,它们都可以正常工作:'localhost/index.html'。如果我从另一个程序(Nautilus、Bluefish)打开它,firefox 打开 'file: //var/www/html/index.html' 并出现上述问题。
谢谢
如果只是您的 <form action="/script.php" method="post"...>
的语法,那么是的,像我在这里做的那样使用绝对 URLS。
如果您尝试使用编辑器在本地打开文件,firefox 会尝试打开该文件,如果您要求的话,记事本可以尝试打开该文件。
重点是 Firefox 可以解析主机名并可以显示来自文件的 html 输出(解释为 php 可以从其主机名生成,或者不解释为静态或原始 html) (使用 http(s):// 协议)或来自他们的文件(使用 files:// 协议)。
Firefox 无法直接解释您的 php 文件,因此它会直接向您发送该文件并告诉您自己做进一步的工作。这不是他的范围。它无法做到这一点。 php 解释器在您的 apache 网络服务器内部工作,因此它可以做到这一点,这就是不同之处。
我已经安装了 LAMP 服务器(Ubuntu 20.4;PHP 7.4.3)。 如果我使用绝对 URL (http://localhost/try.php) 创建表单并设置操作,则没有问题,但如果我使用相对 url (try.php) 浏览器 (firefox) 告诉我是否要打开 php 文件。 是浏览器的问题还是php设置的问题?
对不起我的英语
示例:我在本地主机中有一个 'index.html' 文件(我使用 Firefox 从 Nautilus 打开它),在这个文件中有一个表单。 这很好用:
<form action="http://localhost/grabar.php" method="post">
<input type="submit">
</form>
这是错误的(firefox 问我如何打开 grabar.php 文件):
<form action="grabar.php" method="post">
<input type="submit">
</form>
另一个发现:如果我通过在导航栏中输入以下内容从 firefox 打开文件,它们都可以正常工作:'localhost/index.html'。如果我从另一个程序(Nautilus、Bluefish)打开它,firefox 打开 'file: //var/www/html/index.html' 并出现上述问题。
谢谢
如果只是您的 <form action="/script.php" method="post"...>
的语法,那么是的,像我在这里做的那样使用绝对 URLS。
如果您尝试使用编辑器在本地打开文件,firefox 会尝试打开该文件,如果您要求的话,记事本可以尝试打开该文件。
重点是 Firefox 可以解析主机名并可以显示来自文件的 html 输出(解释为 php 可以从其主机名生成,或者不解释为静态或原始 html) (使用 http(s):// 协议)或来自他们的文件(使用 files:// 协议)。
Firefox 无法直接解释您的 php 文件,因此它会直接向您发送该文件并告诉您自己做进一步的工作。这不是他的范围。它无法做到这一点。 php 解释器在您的 apache 网络服务器内部工作,因此它可以做到这一点,这就是不同之处。