2011-05-22 103 views
0

我有一个调用PHP IE6的HTML代码的HTML相对路径,问题是当我使用相对路径,它只是打开PHP文件,但是当我使用绝对路径,则执行PHP代码。 html和php都在同一个目录中,并且apache正在运行。不工作PHP

下面一个工作:

<form action="http://localhost/welcome.php" method="POST"> 
Name: <input type="text" name="fname" /> 
Age: <input type="text" name="age" /> 
</form> 

不工作:

<form action="welcome.php" method="POST"> 
Name: <input type="text" name="fname" /> 
Age: <input type="text" name="age" /> 

PHP代码:

<html> 
<body> 
Welcome <?php echo $_POST["fname"]; ?>!<br /> 
</body></html> 
+0

其实在这两种情况下,我双击html文件。绝对路径文件工作正常,它打开http://localhost/welcome.php,但在第二种情况下,它只是打开c:/xampp/htdocs/welcome.php。我不知道这里有什么问题吗?我需要在conf文件中添加.html设置吗? – user757621 2011-05-22 07:15:26

+1

@John这是一个答案;你应该做到这一点。 – Jordan 2011-05-22 07:15:39

+0

@Jordon谢谢。我做了,并添加了一些颜色,使其可以理解。 – 2011-05-22 07:27:02

回答

1

让与形式的文件是:C:\ XAMPP \ htdocs中\ form.html

如果你是在资源管理器中导航并单击该文件,该文件中的任何链接都将默认为文件协议,而不是http。意思是说,浏览器将去到位置并打开文件,并在没有服务器的情况下解析它自己。

必须导航到localhost/form.html,比它会奏效。

+0

我不明白为什么它可以使用绝对路径,而不是相对路径。 – user757621 2011-05-22 07:17:09

+1

究竟是什么你在浏览器中打开,以打开与窗体的文件? – r0nny1l 2011-05-22 07:18:22

5

我预计,在第二种情况,你实际上从文件中运行它:///协议。这意味着它没有通过你的服务器。

你不应该在你的资源管理器中双击文件,因为这将只是通过文件系统打开它。你的PHP都不会以这种方式工作。


对于完整的URL,您实际上是向服务器发出请求。您将从您所在的任何文件/协议导航至指定位置:http://localhost/welcome.php

具有相对URL,你从你的根目录开始(文件:/// C:/ XAMPP/htdocs中/)和相对导航到的welcome.php。这会使您的最终URL文件:/// c:/xampp/htdocs/welcome.php。由于第二个不是由服务器渲染的......你不会得到任何有用的东西。

这是否意味着你不应该使用相对路径?一点都不。这意味着你应该从你的http服务器开始。设置一个书签。 :)

+0

我在这里为你增加了一些清晰度。 – 2011-05-22 07:24:30

+0

得到了答案,如果使用http://localhost/wel_input.hml,它可以采取相对路径。非常感谢约翰,上帝保佑你! – user757621 2011-05-22 07:34:55