Я задал этот вопрос вчера, но ответа не получил, и вопрос был отмечен как дубликат, а это не так.
Я изменил имя столбца «ключ» на имя таблицы «lic_key» и «keys» на «license_keys», потому что я понимаю, что они зарезервированы MySQL.
Это мой PHP-код:
<?php require 'config.inc.php'; /* Connect to database and grab the keys */ @mysql_connect($g_mysql_host,$g_mysql_usr,$g_mysql_pass) or die("Couldn't connect to database server"); @mysql_selectdb($g_mysql_db) or die("Couldn't select database"); $key = mysql_real_escape_string($_GET["key"]); $query = "SELECT * FROM `license_keys` WHERE `lic_key` = '$key'"; $result = mysql_query($query); if ($result == "") exit("INVALID KEY"); else { while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { echo $row['id']; } } ?>
Это работает только в том случае, если ключ НЕ содержит символ «+», и он выводит конкретный «id» для искомого «license_key». Если ключ содержит «+» или не найден, страница остается пустой (это еще одна проблема, которая у меня есть, потому что сценарий должен выводить «INVALID KEY»).
Ключевые строки зашифрованы с использованием AES128 в Base64. Другие клавиши имеют символ «+», другие – нет.
Вскоре,
kQcYqzQlsr4/MXJ1ySw7jQ== -- works. CKVcua+aWlnK5qfKwcm6wA== -- does not work.
Этот скрипт предназначен только для личного использования, поэтому я не боюсь внедрения SQL.
Благодарю.