2015-08-26 18 views
1

IM使用谷歌的reCAPTCHA和我的驗證的方法是通過Ajax,一切工作,我得到了響應「未定義不斷成功的使用 - 假設‘成功’」的錯誤解析JSON響應

{ 
success: "false/true" 
} 

但我在第30行有任何想法,幫助,建議和建議,「使用未定義的恆定成功 - 假定'成功'?

這是我在控制器上的代碼(一個我在溝通的谷歌驗證碼API使用)

$captcha=$request->input('g-recaptcha-response'); 
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=mysitekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); 
if($response.success == false) //this is the line 30 
{ 
    return 'You are spammer ! Get the out'; 
}else{ 
    return 'Thanks for posting comment.'; 
} 

這是該行30「$ response.success ==假」

+0

如果你var_dump響應,你會得到什麼? – Szenis

+0

@Szenis:我得到這個「串‘{ ‘成功’:假 }’(長度= 22)」 –

+0

我認爲亞歷克斯他的答案是什麼,你需要 – Szenis

回答

4

你錯過幾個步驟。 首先,你需要json_decode你從API

$responseData = json_decode($response); 

接下來,您需要妥善解決的「成功」元素從我以爲會是一個數組得到的迴應,但你會驗證這一個var_dump()

var_dump($responseData); 

如果你得到一個數組,則if子句將是這樣的:

if ($responseData["success"]==false) 

在另一方面,如果你在responseData對象時,`if語句看起來像這樣

if ($responseData->success==false) 

dot的符號是Javascript,在phpdot是concatentation運算符。

+0

我得到這個「串「{ ‘成功’:假的 }'(length = 22)「 –

+0

我認爲你的意思是@Szenis的這個評論:)如果你做了我上面提到的建議你不可能得到一個'string',因爲'json_decode'不會返回 –

+0

我得到這個「object(stdClass)[163] public'success'=>布爾值true」試試你的時候 –