$ _SERVER [" PHP_SELF"] Apache / Xampp禁止访问

时间:2014-05-16 02:45:05

标签: php apache permissions xampp

我在localhost上使用Xampp / Apache服务器。

我正在尝试对张贴到" register.php"的表单上使用操作。

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

我收到403错误&#34;禁止访问&#34;。

在网址中声明:

<br%20/><b>Notice</b>:%20%20Undefined%20index:%20register.php%20in%20<b>C:/xampp/htdocs/2001/create_account.php</b>%20on%20line%20<b>45</b><br%20/>

(第45行的错误,即上面的代码行。)

此代码所在的文件是php文件create_account.php

我试过改变apache的httpd.conf权限,没有变化。我试过在其他地方找到解决方案,但没有运气修复。

2 个答案:

答案 0 :(得分:0)

您需要仔细阅读$ _SERVER的手册页 http://www.php.net/manual/en/reserved.variables.server.php

你可能会发现动作=&#34; register.php&#34;就是你需要的一切

答案 1 :(得分:0)

在您的代码示例中,您尝试调用未定义的键,$_SERVER数组没有,因此您遇到错误。

$_SERVER是一个php超全局,它的形式是一个数组。数组可以是索引的,关联的或多维的。关联数组使用键来访问值('key' => 'value')。关联数组的示例:

$person=array('Name' => 'John', 'Last name' => 'Spencer', 'Age' => 22);

为了获得John的姓氏,您首先需要指定保存所有信息的数组($person),然后通过该数组通过该数组请求某些信息键(['Last name'])。此类请求的示例:

$lastName=$person['Last name'];

如果您已经知道要访问的页面,则应将其作为纯文本(method="register.php")以HTML格式输入,这样就不需要任何PHP功能。功能htmlspecialchars()也不是必需的,因为您是打字的人,并且不需要清理自己的输入。

比纯文本更好但是使用$_SERVER['PHP_SELF']会返回您当前所在页面的相对路径。这种方式比以前更好,因为如果在某些时候您要重命名文件,则不必像以前的示例那样更改为表单的方法值。

最后,如果您未离开当前所在的网页,也可以将空字符串作为方法(method="")。

建议进一步阅读: