2015-01-09 3 views
0

Это мой первый пост здесь! :) Я создал систему генерации и проверки подлинности php. Конечный сервер связывается с базой данных mysql и выводит результат json следующим образом:Результат php curl недействителен

{"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!"); 

} 


?> 

когда я запускаю это я получаю «действителен» каждый раз, даже когда я ввести неправильный ключ - я попробовал печать вывода, и я могу это подтвердить.

Просьба сообщить.

Спасибо.

ответ

2

Ваш JSON содержит строку true, а не логическую истину. Любая строка в таком виде будет проходить == true.

if($result['valid'] == 'true'){ 
+0

Не могу поверить, сколько времени я проверил, что было не так! Спасибо, решено! :) – aqq

+0

@aqq Лицензионные ключи и зашифрованный код с PHP - это проигрывающая битва, на мой взгляд. Вам нужно что-то вроде http://www.ioncube.com/, но они дорогостоящие, ограничивают совместимость и все еще прерываются. – ceejayoz