HTTP请求编辑数据库



我正在尝试使用MySQL数据库来验证用户是否从我的网站购买了程序。我不需要使用数据库,但这是我认为可以实现的最简单的方法(非常感谢任何关于实现购买验证系统的不同方法的建议)。

我目前的算法:

  1. 用户为该程序付费(通过WooCommerce提供的各种支付网关之一)
  2. 服务器为用户提供了一个唯一的随机十六进制字符串(该字符串也作为键/值对存储在数据库中;字符串:0;0表示未使用)
  3. 用户在程序中输入字符串(必需),程序会向服务器发送HTTP请求(包括字符串)。这个请求告诉服务器在数据库中查找给定的字符串。如果已找到,请将其值更改为1(已使用)。如果该值已为1或找不到字符串,请向用户发回错误报告(程序将无法运行)
  4. 如果一切正常,用户现在可以使用该程序

我必须使用HTTP请求,因为只有服务器才能编辑数据库。我的网站使用共享托管,所以我不能直接修改任何本地用户的数据库。

我以前从未使用过数据库,但我知道必须使用INSERTCREATE TABLEUPDATESELECT命令。此外,我从未直接处理过HTTP请求。

HTTP请求应该是什么样子,我如何在服务器上处理它们?关于如何使用数据库的任何其他提示也将不胜感激。

注意:我可能会使用PHP(服务器端)和Python(客户端)。

你的html看起来像这个

<html>
<body>
<form action="validate.php" method="post">
Name: <input type="text" name="name"><br>
unique string: <input type="text" name="uniqueString"><br>
<input type="submit">
</form>
</body>
</html>

在服务器端,validate.php看起来是这样的。

<?php

$name = $_POST["name"];
$unqString = $_POST["uniqueString"];
//connect to your DB
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); 
mysql_select_db("Database_Name") or die(mysql_error()); 
$data = mysql_query("SELECT uniqueStringUsedFlag FROM <stringTableName> WHERE uniqueString='.$unqString.'") 
or die(mysql_error()); 
while($info = mysql_fetch_array( $data )) {
if $info['uniqueStringUsedFlag']==1{
return 'Error Message';
}else
{
mysql_query("update <stringTableName> set uniqueStringUsedFlag =1 where uniqueString='.$unqString.'");   
return 'Success';
}
}
//if the control comes here, it means the record was not found.
return 'Error message'

?>

替换<stringTableName>和实际的表名。对列也执行同样的操作。附言:此代码未经测试。请做适当的验证等。这里没有包括这些。让我知道这是否有效。

最新更新