我有一些可以在我的在线PHP,MySQL服务器上自由运行的php文件。 作为示例,如果它关注 addUser.php (这是代码)
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$name = $_POST['name'];
$email = $_POST['email'];
...
$sql = "INSERT INTO users (name,email,...) VALUES ('$name','$email',...)";
require_once('DbConnect.php');
if(mysqli_query($con,$sql)){
echo 'User Added Successfully';
}else{
echo 'Could Not Add User';
}
mysqli_close($con);
}
我已经使用URL编码我的ANDROID应用程序以通过 StringRequest 访问此类型的php文件
http://www.***.com/addUser.php
并使用 HashMaps
传递参数所以,我想知道当android用户访问它时这个php文件是如何运行的,当成千上万的android用户开始访问这个php文件并开始同时将数据插入我的在线服务器数据库时会发生什么。 如果出现问题,解决方案是什么?
我只是想知道当许多用户同时尝试相同的php文件时会出现问题吗?我的意思是我们在多线程中使用同步来防止在许多用户同时使用同一个问题时发生问题。因为当成千上万的用户通过这个php文件添加数据时会出现问题
答案 0 :(得分:0)
似乎您已经为Android应用程序开发了一个用于插入数据的API。我建议你在插入数据之前先放一个认证层。例如,您可以为应用程序用户使用“哈希”或“盐”算法生成令牌。如果他们使用该令牌请求,您必须在API中决定是接受请求还是拒绝。
答案 1 :(得分:0)
让我们假设您将继续使用此脚本。
在插入用户之前运行select * from users where email = '$email'
。如果是results.length == 0
,请插入用户,如果没有返回错误。
POST
数据在这里你应该做一些基本的验证:
$name = $_POST['name'];
$email = $_POST['email'];
// Do some checks here which will validate the email
有关验证的详细信息,请参阅以下页面:
http://php.net/manual/en/filter.examples.validation.php
除此之外还有一些楼层
还有一件事,也许看看其他例子。 E.g
http://www.tutorialspoint.com/php/php_login_example.htm
好像你想要实施谷歌登录(根据你的评论)。
以下是我的表现:
此链接有用 - &gt;