大家好,我好 我想为我的软件创建一个PHP脚本,该脚本使用一个带有string的$ _GET请求生成并返回特定代码,并使用此代码的另一个证书,然后禁止运行相同的string。
什么应该是这样的: 第一个用户的软件像"abc"一样运行"http://example.com/codes.php?create="和string。 和脚本返回基于"abc"的代码,例如"4aO45k","12sdF4"等 第二个用户的软件运行"http://example.com/codes.php?verify="和此代码。 如果此代码存在,则返回true并将其删除FOREVER,这意味着将永远不会再生成此代码。如果此代码不存在,则返回false。 如果第一个用户的软件将运行"http://example.com/codes.php?create=abc",则将生成另一个代码。
简单来说:
if $_GET is create, then
generate random alphanumeric string, save it and return
if $_GET is verify, then
check if this string exists, if so, then
return true, remove from saved
otherwise
return false
可能没有数据库, SQL,mySQL,FireBird ......? 如何使用.ini文件作为存储?
谢谢。
分析解答
它可以用于文件。您可以执行以下简单解决方案:
几个笔记:
- 我完全不知道
based on
的意图,所以这只是使用输入作为前缀 - 这会无限期地将每个代码存储在文件中;如果使用了很多,这个文件将变得非常大并检查代码的存在,并确保新代码是唯一的,可能会变得非常慢
- 可以多次验证相同的代码,但永远不会重新创建。在验证之后将它们标记为使用当然也是可能的
- 作为一般规则,不要创建全局函数并将所有内容推送到这样的文件中。这真的只是被问到的概念的证明
<?php
$file = fopen('codes', 'a');
if (!empty($_GET['create'])) {
$seed = $_GET['create'];
do {
$code = uniqid($seed);
} while (codeExists($code));
fwrite($file, $code . "\n");
echo $code;
}
else if (!empty($_GET['verify'])) {
echo codeExists($_GET['verify']) ? 'found' : 'not found';
}
function codeExists($verification) {
$file = fopen('codes', 'r');
$found = false;
while ($code = trim(fgets($file))) {
if ($code == $verification) {
$found = true;
break;
}
}
return $found;
}