这是我第一次在这里发帖! :)我做了一个php许可证生成和验证系统。服务器端与 mysql 数据库通信并输出如下所示的 json 结果:
{"valid":"true","info":{"id":"1","expire":"1421811123"}}
问题出在我有以下脚本的客户端服务器上:
<?php
$key_info['key'] = "KEY"];
$serverurl = "http://URLTOSERVER";
$ch = curl_init ($serverurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $key_info);
$result = curl_exec ($ch);
$result = json_decode($result, true);
if($result['valid'] == true){
echo "valid";
}
else {
die("Invalid Key!");
}
?>
当我运行它时,每次我都会得到"有效",即使我输入了错误的键 - 我已经尝试打印输出并且可以确认。
请指教。
谢谢。
JSON 包含字符串 true,而不是布尔值 true。其中的任何字符串都将传递== true
.
if($result['valid'] == 'true'){