检查以验证序列号

时间:2015-09-24 17:31:15

标签: php mysql

我想要检查存储在mysql数据库中的验证密钥的网页。在数据库中,我存储了1000个序列号。

序列号验证后,我希望它能让我返回页面而不再向我询问序列号。

这是我到目前为止所做的:

game_id  category_id   game_name               category_name    favorite    dislike
-------  -----------   ----------------        -------------    ---------   --------
840832      1000     'counter-strike'               fps             1         NULL
779343      1000     'call of duty modern warfare'  fps             1         NULL
684244      2000     'minecraft'                  adventure        NULL       NULL
983565      2000     'assassin\'s creed syndicate'adventure        NULL       NULL
858168      3000     'need for speed - rivals'    racing           NULL       NULL
819837      4000     'mortal kombat x'           fighting          NULL       NULL
634266      5000     'street fighter v'          fighting          NULL       NULL

这在我的服务器上保存为名为“keygen-validate.php”的文件。此文件将连接到我的数据库并查看序列号以确保它没问题。

我遇到问题的部分是告诉我的页面通过keygen-validation.php文件运行序列号的部分。

<?php 
require 'keygen-connect.php';
$key = addslashes(htmlentities($_GET['key']));
if ($key == "") {
die("No key found");
}
$query = "SELECT * FROM `keys` WHERE key='".$key."'";
$result = mysql_query($query) or die("Could not execute query");
if (mysql_num_rows($result) > 0) {
echo "Key valid";
// Setting the key activated
$query = "UPDATE `keys` SET activation='yes' WHERE `key`='".$key."'";
$result = mysql_query($query);
} else {
echo "Key invalid";
}
?>

我还应该补充一点,这意味着简单。我不需要昂贵的选择。我敢肯定,人们可以轻松地做些事情来规避我的努力,但这与其他任何事情都是一个学习项目。

由于

另外,有人指出我需要更新到pdo ...所以,是的,我正在努力:)

3 个答案:

答案 0 :(得分:0)

在您的前端完全没有PHP。您只需要一个<form>,其中包含一个键的输入,它将提交给您的PHP脚本以进行后端处理。

<form action="keygen-validate.php">
  <input type="text" name="key">
  ...

提交的值将根据需要以$_GET['key']的形式到达您的PHP文件中。

答案 1 :(得分:0)

由于您使用的是GET,因此您可以使用表单和GET操作提交数据。

所以,例如:

function listMeteorChannel() { // fetch a user you want to act on behalf who authorized offline access const user = Meteor.users.findOne({ 'services.google.refreshToken': { $exists: true, }, }); if (!user) { return; } const googleServiceConfig = Accounts.loginServiceConfiguration.findOne({ service: 'google', }); // declare oauth2 client and set credentials const oauth2Client = new GoogleApis.auth.OAuth2(googleServiceConfig.clientId, googleServiceConfig.secret); // get user access token const tokens = getAccessToken(user); oauth2Client.setCredentials(tokens); // obtain the youtube service at version 3 and perform authentication at service level const youtube = GoogleApis.youtube({ version: 'v3', auth: oauth2Client, }); // declare a synchronous version of youtube.channels.list const youtubeChannelsListSync = Meteor.wrapAsync(youtube.channels.list, youtube.channels); // fetch an info snippet from the Meteor official YouTube channel const result = youtubeChannelsListSync({ part: 'snippet', // Meteor channel ID id: 'UC3fBiJrFFMhKlsWM46AsAYw', }); result.items.forEach((item) => { // display the channel title, which should be 'Meteor' console.log(item.snippet.title); }); } Meteor.startup(listMeteorChannel);

这样,GET可以检索你的'key'参数。

我在很长一段时间内没有对PHP做过任何事情,所以有人可以随意纠正/扩展它。

答案 2 :(得分:0)

如果你想检查你加载的每个页面中的串行密钥,并且串行密钥已经在URL中,你需要做的只是include你的脚本,而不是回显结果为&#34;无效密钥&#34;您拨打exit()或将header()设置为正确的401错误。

实现目标的其他方法是将验证包装在function $key参数表中,而不是从$_GET读取。 然后在您的页面上include您的脚本并调用function$key值传递给它。