mysql base64 图片php,使用PHP在MySQL表中搜索Base64字符串

I asked this question yesterday, but I didn't get an answer and the question has been marked as duplicate, which is not.

I changed the "key" column name to "lic_key" and "keys" table name to "license_keys" because I understand they are reserved by MySQL.

This is my PHP code:

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'];

}

}

?>

This works only if the key does NOT contain the "+" character, and it outputs the specific "id" for the searched "license_key" .

If the key contains "+" or is not found, the page remains blank (which is another problem that I have, because the script should output "INVALID KEY") .

The key strings are encrypted using AES128 in Base64. Other keys have the "+" character, other not.

Shortly,

kQcYqzQlsr4/MXJ1ySw7jQ== -- works.

CKVcua+aWlnK5qfKwcm6wA== -- does not work.

This script is only for personal usage, so I'm not scared about SQL injection.

Thanks.

解决方案

Thanks to @Barmar for clarifying the problem with "+" character in the URL.

To fix the problem with the blank page if the key is incorrect, I edited

if ($result == "") exit("INVALID KEY");

with

if (mysql_num_rows($result)==0) exit("INVALID KEY");

and now it works.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值