2013-10-14 164 views
-1

我有一個鏈接。當用戶點擊該鏈接時,它將更新數據庫的計數,並且應用程序將被安裝。Android應用程序未安裝

<a style="text-decoration: none" mimeType="application/vnd.android.package-archive" href="http://way2enjoy.com/touch/w2et/appdownload.php?file=http://way2enjoy.com/android/Way2Enjoy.apk?32" target="_new">Download Android <img src="http://www.way2enjoy.com/touch/w2et/android32.png" />app</a> 

我已經直接指向Android文件試過這個文件,它有安裝沒有任何問題,但是當我要通過這個環節,似乎是工作在PC和Android文件得到下載,但是當我嘗試安裝文件在Android我得到解析錯誤。

這裏是我的appdownload.php代碼

$c=explode("?",$_SERVER[ 'REQUEST_URI' ]); $city=end($c); 

$c=explode("?file=",$_SERVER[ 'REQUEST_URI' ]); $city1=end($c); 

$content = file_get_contents($city1); 

header("Content-Type: application/vnd.android.package-archive"); 
header("Content-Disposition: attachment; filename=Way2Enjoy.apk"); 
mysql_query("update table SET count=count+1 where id='$city'"); 
echo $content; 

mysql count沒有任何isssue和文件的增加也越來越下載,但該文件沒有得到安裝在機器人。

有什麼想法?

+0

如果沒有用戶的互動,你不能安裝apk,你應該更好地使用谷歌播放鏈接,點擊,你可以輕鬆地將他重定向到你的谷歌播放應用程序鏈接。 – Prateek

+0

@prateek我沒有任何與用戶交互的問題,它正在安裝,當我直接點擊鏈接後,它將下載並安裝,但我想要數的時間沒有下載,所以我在這裏也使用此鏈接也它的gettign已下載但尚未安裝 – chetna123

+0

請記住,您的SQL容易受到[注入](http://en.wikipedia.org/wiki/SQL_injection)攻擊。如果有人準備了一個將惡意內容放入'$ city'的URI,他們將能夠損壞你的數據庫/讀取所有記錄/任何內容。另外,你可能應該[遠離PHP的mysql擴展](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 –

回答

1

您應該在MySQL語句中使用錯誤處理,因爲您只是回顯文件內容,並且如果其他語句在OutputStream中回顯錯誤,則會銷燬APK。

更好的辦法是重定向到這樣的文件: header('Location: http://way2enjoy.com/android/Way2Enjoy.apk');。其實我從來沒有嘗試過與Android的應用程序,但它應該工作。

+0

你岩石老兄。非常感謝你 – chetna123

0

我認爲這是因爲php代碼只是開始下載並增加計數器。 您不能確定用戶是否最終安裝了該應用程序。

我不知道你是否是Android應用程序的所有者。在這種情況下,也許你可以從Android應用增加計數器,這樣你就可以確保應用已經正確安裝。

希望它能幫助!

+0

當我點擊鏈接後直接點擊鏈接,它會下載並安裝,但我想要計算它的下載次數,因此我使用這個鏈接這裏也gettign下載,但沒有得到安裝 – chetna123