2012-02-22 84 views
1

我正在創建一個iPhone應用程序,它向php腳本發送用戶名和密碼,然後php腳本在mySQL數據庫中查找值並將布爾值設置爲0或1取決於用戶是否應該被認證。我真的不知道該從哪裏開始,甚至不知道Google應該怎麼做。從iOS腳本發送響應

這可行嗎? 這是在iOS應用程序中驗證用戶的正確方法嗎?

謝謝!

+1

是的,這是可以做到,它甚至可以是相當安全的,如果你使用HTTPS,且不會以明文形式通過用戶名/密碼。但你的問題是什麼?如何構建後端服務器程序? – 2012-02-22 16:38:42

+0

嗯,我已經完成了iOS部分,它將用戶名和密碼發送到php腳本。然後該腳本能夠連接到我的數據庫並查看是否存在這些值。一旦它找到了正確的用戶名/密碼,它就會設置布爾值或者繼續到DB的數據庫......所以我完成了所有這些。我需要知道如何發回驗證布爾值來告訴iOS應用程序用戶名/密碼是否存在於數據庫中。 – thebiglebowski11 2012-02-22 16:41:36

+0

無論您使用哪種技術(PHP/MySQL或JAVA/MySQL或PHP/PostgreSQL),一般來說,該過程都是正確的。你總是需要客戶端(你的情況下的iPhone)和服務器之間的通信。 – bitfox 2012-02-22 16:46:38

回答

1

有多種類型可以實現這一點。

a)在PHP中生成XML或JSON文件,並在iOS中讀取內容。 (如果需要,此方法可爲您提供獲取任何額外數據的好處)。

b)從PHP發回HTTP header(),並讀取HTTP響應代碼。你可以做這樣的事情。

function checkLogin() 
{ 
    //Check login 
    if($login == true) { 
     header('HTTP/1.1 200 OK'); 
    } else { 
     header('HTTP/1.1 401 Unauthorized'); 
    } 
} 

c)中可以用PHP輸出任何東西(純文本,JSON,HTML等),如由PHP產生的輸出將被接收作爲HTTP響應。

+0

如果我只想得到'1'或'0',而不是所有與它相關的html,我是否需要將1(或0)寫入另一個位置? – thebiglebowski11 2012-02-24 02:03:55

0

任何PHP腳本輸出將作爲HTTP響應返回。簡單地輸出一些有意義的東西,並在客戶端讀取它。

+0

您是否知道iOS應用程序如何使用該信息甚至讀取它? – thebiglebowski11 2012-02-22 21:31:00

+0

不是。但我知道HTTP如何工作。 – 2012-02-22 21:47:45

0

你可以寫一個PHP腳本是這樣的:

<?php 

// the authentication procedures memorized in the $authentication variable the result of authentication process. Supposed to be 1 if successful 

echo $authentication; 

?> 

調用此腳本從iOS例如通過使用一個的NSURLRequest對象。

P.S .:但是,對於客戶端和服務器之間的數據交換,您應該使用JSON格式。