我在本地主机上使用Xampp/Apache服务器。
我试图使用一个表单上的动作,张贴到"register.php"。
<form method="post" action= "<?php echo htmlspecialchars($_SERVER["register.php"]);?>">
我得到一个403错误"Access Forbidden".
在url中它声明:
<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权限,没有变化。我已经尝试在其他地方找到解决方案,但没有运气与修复。
您需要仔细阅读$_SERVER的手册页http://www.php.net/manual/en/reserved.variables.server.php
你可能会发现action="register.php"就是你所需要的
在你的代码示例中,你试图调用一个未定义的键,数组$_SERVER
没有,因此你有一个错误。
$_SERVER
是一个php超全局变量,它的形式是一个数组。数组可以是索引的、关联的或多维的。关联数组使用键访问值('key' => 'value')
。关联数组示例:
$person=array('Name' => 'John', 'Last name' => 'Spencer', 'Age' => 22);
为了获得John的姓氏,您首先需要指定保存所有信息的数组($person
),然后通过键(['Last name']
)从该数组请求某些信息。请求示例:
$lastName=$person['Last name'];
如果你已经知道你想访问的页面,你应该在HTML中输入纯文本(method="register.php"
),不需要任何php功能来做这件事。函数htmlspecialchars()
也不是必需的,因为您是键入的人,不需要对自己的输入进行消毒。
然而,比纯文本更好的是使用$_SERVER['PHP_SELF']
,它返回当前页面的相对路径。这种方式比以前更好,因为如果在某些时候您要重命名文件,则不必像前面的示例那样更改表单的方法值。
最后,如果你不离开当前页面,你也可以放置一个空字符串作为方法(method=""
)。
推荐阅读:
php.net的数组文档
w3school关于数组的文档