【问题标题】:$_SERVER["PHP_SELF"] Apache/Xampp forbidden access$_SERVER["PHP_SELF"] Apache/Xampp 禁止访问
【发布时间】:2014-07-04 16:52:36
【问题描述】:

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

我正在尝试对发布到“register.php”的表单使用操作。

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

我收到 403 错误“禁止访问”。

在网址中它指出:

<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 权限,没有任何更改。我已尝试在其他地方找到解决方案,但没有找到解决办法。

【问题讨论】:

  • 只要使用&lt;form method="post" action="register.php"&gt;,就不需要htmlspecialchars$_SERVER了。

标签: php apache permissions xampp


【解决方案1】:

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

$_SERVER 是一个 php 超全局,它的形式是一个数组。数组可以是索引的、关联的或多维的。关联数组使用键来访问值('key' =&gt; '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="")。

推荐阅读:

【讨论】:

    【解决方案2】:

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

    你可能会发现 action="register.php" 就是你所需要的

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 2017-02-20
      • 1970-01-01
      • 2018-10-07
      • 2020-07-10
      • 2013-07-22
      • 2015-11-11
      • 2019-04-01
      • 2013-01-19
      相关资源
      最近更新 更多