【发布时间】:2013-07-23 12:40:20
【问题描述】:
我有一个 Windows VPS 服务器,这个服务器是个人服务器,所以我安装了 XAMPP 来在这个服务器上运行 PHP 和 Apache。
现在我在另一台服务器上创建了一个 from with post 方法,并将数据发布到这个个人服务器(具有 XAMPP)。
当我使用$_POST时,这个变量是空的,我也检查了$_REQUEST,但这个变量也是空的。
本地表单没有这个问题,$_POST 将传递所有发布的变量,我只是在远程表单中遇到这个问题。
我认为这个问题与安全有关,我应该在php.ini上更改它,但我不知道该怎么办!
更新:
HTML 代码:
<form method="post" action="http://xxx.xxx.xxx.xxx/login.php">
<input type="text" name="username" value="Username ..." />
<br/>
<input type="password" name="password" value="Password ..." />
<br/>
<br/>
<input type="submit" name="submit" value="Send" />
</form>
PHP 代码:
<?php
echo $_POST['username'];
echo $_POST['password'];
print_r($_POST);
print_r($_REQUEST);
print_r($GLOBALS);
?>
如果位于同一服务器上的两个文件 php 文件都可以工作,$_POST 将返回发布的变量,但如果 HTML 文件位于不同的服务器上,$_POST 将为空!
【问题讨论】:
-
显示您用于发布的代码。
-
在表单后注册的跨域策略,因此您可以发布到另一个域。就像@BartFriederichs 说的:请展示你的代码。
-
我更新了我的问题
-
据我所知 PHP 没有本地机制来防止这种情况。你使用的那个包是否提供了一个安全模块,比如 Suhosin 或 mod_security?
-
@ÁlvaroG.Vicario 嗯,我不知道,我安装了一个新的 XAMPP 包,(apachefriends.org/en/xampp.html) 我没有安装任何扩展,也没有更改 php.ini 中的任何内容
标签: php apache variables xampp