2014-03-03 57 views
0

嘗試在Android上獲得用戶驗證工作。用於在Android上驗證用戶登錄的PHP Web服務

Android應用程序使用POST方法發送用戶名和密碼。但是,我不斷收到「錯誤接收細節!!」錯誤。我試圖使用REST控制檯來查看Web服務是否正常工作,但沒有成功,即使在那裏我也得到相同的錯誤。

任何幫助或方向將不勝感激。

已經建立了一個PHP Web服務和代碼是:

<?php 

require_once '../site_info.php'; 
require_once '../database_connect.php'; 
require_once '../functions.php'; 

if(isset($_REQUEST['email']) and $_REQUEST['email']!='' and isset($_REQUEST['password']) and $_REQUEST['password']!='') 
{ 
    $email = mysql_real_escape_string($_REQUEST['email']); 
    $pass = mysql_real_escape_string($_REQUEST['password']); 

    $query = 'select id from users where email = "'.$email.'" and password = "'.sha1($pass).'"'; 
    $result=mysql_query($query) or die('error getting admin details : '.mysql_error()); 

    if(mysql_num_rows($result)==1) 
    { 
     echo 'Login Success!!'; 
    } 
    else 
    { 
     echo 'Incorrect login details!!'; 
    } 
} 
else 
{ 
    echo 'Error recieving data!!'; 
} 

?> 

的Android應用程序發出請求作爲JSON:

JOSN請求數據:{ 「密碼」: 「密碼」, 「電子郵件」 : 「[email protected]」}

響應

狀態:200

RESP onse body:array(0){}接收數據時出錯!

+3

我們能看到你的基於Java的HTTP連接? – Ohgodwhy

+0

你用json來回答這個問題嗎?在你的問題中,我沒有看到與json有關的任何內容?請提供更多詳細信息或編輯您的標籤。 – ejohansson

+0

@ fieldtech.io我編輯了這個問題。 Android應用以json格式發送請求。 'JOSN請求數據:{ 「密碼」: 「密碼」, 「電子郵件」: 「[email protected]」}' 響應 狀態:200 '響應體:陣列(0){}錯誤數據recieving !!' – user3374951

回答

0

找到了解決辦法

<?php 

require_once '../site.php'; 
require_once '../database.php'; 
require_once '../functions.php'; 

$data = file_get_contents('php://input'); 
$json = json_decode($data); 

$email = $json->{'email'}; 
$password = $json->{'password'}; 

if(!empty($email) and !empty($password)) 
{ 
    $email = mysql_real_escape_string($email); 
    $password = mysql_real_escape_string($password); 

    $query = 'select id from users where email = "'.$email.'" and password = "'.sha1($password).'"'; 
    $result=mysql_query($query) or die('error getting admin details : '.mysql_error()); 

    if(mysql_num_rows($result)==1) 
    { 
     $array = array("success" => "TRUE"); 
     print(json_encode($array)); 
    } 
    else 
    { 
     $array = array("error" => "Login invalid."); 
     print(json_encode($array)); 
    } 
} 
else 
{ 
    $array = array("error" => "Data not recieved."); 
    print(json_encode($array)); 
} 

?> 
0
else{ 
    var_dump($_REQUEST); //add this line to see what's coming to your script 
    echo 'Error recieving data!!'; 
} 

如果你什麼也得不到,那麼你可以嘗試使用一些張貼在此腳本來檢查腳本,但我想這個問題是來自客戶端。

在命令行(假設你有捲曲):

curl --data "param1=value1&param2=value2" http://example.com/script.php 
+0

感謝您的迴應。我看到這個現在'陣列(1){ [ 「PHPSESSID」] => 串(32) 「bc30b82cdaf41cdcbb15c5d57177cfaa」 } 錯誤recieving數據!!' – user3374951

+0

然後客戶端不發送任何數據... –

+0

我使用REST控制檯使用POST方法試用此方法。在我寫了[email protected]&password=password的正文中,您是否懷疑PHP文件中有任何錯誤? – user3374951

相關問題