大家好,我好 我想为我的软件创建一个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;
}