簡體   English   中英

從Android連接到PHP和MySQL

[英]Connect to PHP and MySQL from Android

我想從我的Android應用程序連接到一個數據庫,並找到了一個教程( 鏈接到教程 )。

當我在模擬器中使用它時它工作正常,但是當我嘗試在手機上使用它時卻沒有。 我嘗試過使用WAMP服務器,我有端口轉發它,我嘗試使用真正的Web主機(000webhost)。 從模擬器到手機的唯一區別是URL,我必須提供公共IP地址而不是10.0.2.2。 我也嘗試過托管WAMP服務器的計算機的本地IP。 我知道有些webhosts會在代碼中添加廣告,但我很確定WAMP不這樣做。

當我使用手機時,我從LogCat收到以下錯誤:

Error parsing data org.json.JSONException: Value <html> of type java.lang.String cannot be converted to JSONObject

更新1:

我已經嘗試使用cURL來檢查返回的內容。 它返回很多(標題,bgcolor等),但我認為這很有趣:

Access denied for user 'root'@'localhost' (using password: NO) in C:\wamp\www\android_connect\db_connect.php on line <i>28</i></th></tr>

好像它無法訪問數據庫,但我可能錯了?

當我使用cURL訪問localhost時,它返回數據庫中的正確項目,而不是所有html代碼作為具有公共IP的服務器。

更新2:

我解決了公共WAMP服務器的問題。 我是個菜鳥,忘了我用密碼設置了服務器。

但是當我從瀏覽器使用webhost(000webhost)時,我仍然會收到此錯誤:

PHP Error Message

Warning: require_once(__DIR__/db_connect.php) [function.require-once]: failed to open stream: No such file or directory in /home/a7471305/public_html/android_connect/get_all_products.php on line 12

Free Web Hosting

PHP Error Message

Fatal error: require_once() [function.require]: Failed opening required '__DIR__/db_connect.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/a7471305/public_html/android_connect/get_all_products.php on line 12

Free Web Hosting

我從cURL得到這個錯誤:

<b>Fatal error</b>:  require_once() [<a href='function.require'>function.require
</a>]: Failed opening required '__DIR__/db_connect.php' (include_path='.:/usr/li
b/php:/usr/local/lib/php') in <b>/home/a7471305/public_html/android_connect/get_
all_products.php</b> on line <b>12</b><br />

怎樣才能解決這個問題?

您看到的URI看起來像是返回HTML文檔而不是JSON。 導航到Web瀏覽器中的URI或使用CURL查看返回的內容。

正如其他幾個人所提到的,PHP可能顯示錯誤,或者您可能收到Web服務器錯誤(à404或500)。

一些免費的Web主機將廣告注入HTML響應,這可能會導致調試和生產之間的差異。 您可能希望將Response-Type標頭設置為application / json,這可能會避免任何干擾。

例如:

// This must go before any output has started, I.E. at the 
// beginning of the first loaded document
header('Content-type: application/json');

我找到了解決方案。 感謝所有幫助過我的人。

webhost無法找到該文件,因為我正在使用

require_once( __DIR__ . '/db_connect.php');

在同一文件夾中查找下一個php文件。 相反,我應該使用:

define('__ROOT__', dirname(dirname(__FILE__))); 
require_once(__ROOT__.'/android_connect/db_connect.php'); 

當您在模擬器中有工作環境時,請嘗試使用WLAN上的手機。 然后,您之間沒有其他步驟/服務器,這可能會扭曲您的服務器響應。

檢查此鏈接。 它用於登錄頁面。 但如果useranme和密碼退出MySQL,它使用php和MySql登錄用戶。 當你運行這段代碼並閱讀它時,你可以自己編寫代碼來完成php和mySQL的其他工作。 它是經過測試的代碼。 它也適用於Android設備。

如何在json的幫助下使用PHP,MySql驗證android中的用戶登錄憑據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM