从客户端接收数据

时间:2017-06-02 13:26:50

标签: php mysqli

我现在已经搜索和研究了两个星期而且有点困惑所以我正在接触社区 我目前正在向一家公司支付服务费。我有一个客户端将数据发布到此服务,它将存储在数据库中,然后被发送到另一个数据库 不幸的是,我不知道发布服务是如何运作的,但是当我需要一个公民时,我正在为法拉利付钱 我去年12月再次开始编程,但还有很多东西需要学习。 我现在建立了我的内部网站,是时候摆脱法拉利了。 如果我构建一个将数据发布到我的数据库(并跳过中间人)的页面,那么客户端发送的自动帖子会一次处理一个并返回成功代码,还是我必须为此构建一个特殊的API? /> 例如
页面接收数据然后插入数据并返回成功代码 然后是下一个和下一个等。

//Page receives the data and checks for token and sets variables for the 
//data fields that corresponds to the columns in the DB.

$token = htmlspecialchars($_GET["token"]);
$data = htmlspecialchars($_GET["data"]);
$data2 = htmlspecialchars($_GET["data2"]);
//if token matches
if ($token = 'xyz'){
    $insert = "INSERT INTO table (datacol,data2col)
                VALUES (?,?) ON DUPLICATE KEY UPDATE data2col=?";
    $stmnt = mysqli->prepare($insert);
    $stmnt->bind_param('s,s', $data, $data2);
    $rslt = $stmnt->execute;
}

if ($rslt){
    print 'success';
} else {
    print 'fail';
)
$stmnt->close();

我提前道歉,因为我甚至不知道客户端如何将数据发送到带有令牌的php页面,并且有一个示例字符串。

2 个答案:

答案 0 :(得分:0)

据我所知,创建API比仅允许客户端将数据插入数据库的简单PHP代码更好。因为Others可以使用相同的PHP页面来插入数据,并且您将拥有垃圾记录。

如果您遵循API的想法,并且可以为传入请求添加基本安全性,通过这种方式,只有您的客户端可以将数据插入到您的数据库中。使用API​​,您也可以创建多个端点。因此,一个端点只允许一个记录和其他允许批记录,因此这样您将增加功能并为您的客户构建更好的服务。

构建API还有许多其他优点。

答案 1 :(得分:0)

如果您担心安全问题,可以尝试使用像Laravel这样的框架。它具有许多安全功能,可以防止SQL注入,输入验证和会话劫持。

它有一点学习曲线但是一旦你通过,就会有一些惊人的机会。开始的一个好方法是来自Scratch的Laravel:https://laracasts.com/series/laravel-from-scratch-2017