我创建了一个用户注册活动,它显示一个表单,并在提交时通过HTTP Post将数据发送到托管insert.php文件的URL。主机当前是我的桌面,并且运行WAMP服务器。
当我通过虚拟仿真器运行应用程序时,数据被正确提交,我可以通过检查MySQL数据库来验证它。
当我在Android手机上调试应用程序时,连接成功但数据未提交。我在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));
答案 0 :(得分:1)
这就是Apache说你不允许从你手机使用的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,以防万一手机在其他日子获得不同的IP。
保存httpd.conf文件,然后使用wampmanager图标菜单重新启动Apache:
left click wampmanager->Apache->Service->Restart Service
如果您正在使用手机,移动数据访问,那么它就会出现问题,因为您必须将路由器移植到允许从外部访问Apache,并添加其他安全访问权。