Android - 403 禁止提交表单

Android - 403 Forbidden on Form Submission

我创建了一个用户注册 Activity,它显示了一个表单,并在提交时通过 HTTP Post 将数据发送到托管 insert.php 文件的 URL .主机目前是我的桌面,有一个 WAMP 服务器 运行。

当我通过虚拟模拟器 运行 应用程序时,数据被正确提交,我可以通过检查 MySQL 数据库来验证它。

当我在 android phone 上调试应用程序时,连接成功但未提交数据。 php 脚本返回 HTML 布局中的 403 Forbidden。当我检查 Android 日志时

有什么地方可能出了问题吗?

insert.php 片段

$host='127.0.0.1';
$uname='root';
$pwd='';
$db="user_db";

$conn = new mysqli($host, $uname,$pwd, $db);

$name=$_REQUEST['name'];
$password=$_REQUEST['password'];
$email = $_REQUEST['email'];
$mobile = $_REQUEST['mobile'];

$sql = "INSERT INTO user (name, password, email, mobile)
    VALUES ('$name', '$password', '$email', '$mobile')";

print(json_encode($flag));

那是 Apache 说您不允许从 phone 正在使用的 IP 地址访问此站点。

开箱即用的 WAMPServer 旨在成为开发人员工具,因此,为了安全起见,对 Apache 的访问仅限于 运行 WAMPServer(Apache) 的单个框。如果它不是 WAMPServer,那么你是 运行,而是其他 WAMP 堆栈之一,那么它基本上是一样的。

编辑您的 httpd.conf 文件并更改安全配置,找到此部分

<Directory "c:/wamp/www/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride all

    #
    # Controls who can get stuff from this server.
    #

#   onlineoffline tag - don't remove
    Require local
# Add a line to allow access from your local network(wifi) if thats what you are using 
# to get from the phone to the PC running WAMPServer
    Require ip 192.168.1

请注意,仅使用了 IPV4 网络子网的 4 个四分位数中的 3 个。这将允许 192.168.1.1 - 192.168.1.255 范围内的任何 ip,以防 phone 在某天获得不同的 ip。

保存 httpd.conf 文件,然后使用 wampmanager 图标菜单重新启动 Apache:

left click wampmanager->Apache->Service->Restart Service

如果您使用的是 phones,移动数据访问,那么问题就更大了,因为您必须转发路由器以允许从外部世界访问 Apache,并且还要添加其他安全访问。