2013-05-22 93 views
0

我就與燈(LINUX + APACHE + MYSQL + PHP)的網絡服務器。我想設置cookie來保存用戶信息,如用戶ID,username.So的load.php是這樣的:爲什麼cookie爲空?

.... 
///login successful 
session_start(); 
$_COOKIE["userid"]=$userid; 

$response["success"]=1; 
$response["message"]="load successful"; 
echo json_encode($response); 
... 

在Android的LoadActivity我創建一個類WebLoader擴展的AsyncTask,我重寫功能String doInBackground(String... params)這樣的:

client=new DefaultHttpClient(); 
HttpPost post=new HttpPost(url_up); 
... 
HttpResponse response=client.execute(post);     
HttpEntity entity=response.getEntity(); 
CookieStore mCookieStore = client.getCookieStore(); 
List<Cookie> cookies = mCookieStore.getCookies(); 
if(cookies.isEmpty()) 
    Log.d("cookie","cookie is none"); 
for (int i = 0; i < cookies.size(); i++) { 
if("userid".equals(cookies.get(i).getName())) 
{ 
     userid=Integer.parseInt(cookies.get(i).getValue());     
    } 
} 

當我運行應用程序時,logcat的說:Cookie是沒有。 爲什麼Cookie不是?我已經將它設置爲load.php。

回答

0

您應該使用setcookie()來設置Cookie。對於你的例子:

setcookie("userid", $userid, time() + 60*60*24, "/"); 

這將設置一個與valie $userid命名userid Cookie,並會從到期時,它被設置31天。

+0

對不起,但Cookie不是。 – huaxz1986

+0

您是否嘗試使用HttpGet而不是HttpPost?你確定'url_up'是有效的嗎?我還添加了路徑參數。你可以試試嗎? – Henridv

+0

謝謝,我終於發現,它是錯誤的PHP腳本,我沒有正確地更改它的權限。當我改變它:sudo chmod 777 xxx.php,並且一切正常! – huaxz1986