2014-04-25 110 views
0

我有一個使用cookie保存信息的函數。問題是,當網頁第一次加載時,我得到錯誤未定義變量「pagination_pos」...我將如何設置這個cookie的臨時值爲空作爲第一次,以便我可以防止此錯誤..這裏是函數:未定義的Cookie變量

function getPaginationPos(){ 
if (isset($_REQUEST['page']) && !empty($_REQUEST['page'])){ 
setcookie('pagination_pos',$_REQUEST['page'],time() + 86400); 
return $_REQUEST['page']; 
} else { 
return ($_COOKIE['pagination_pos']!='' ? $_COOKIE['pagination_pos'] : 1); 
} 

} 

我會在第6行

+0

之前有沒有任何代碼?或者這裏的行號是否正確? –

+0

@RyanSmith它必須是那條線。引發錯誤的變量被稱爲「pagination_pos」,它僅在此處顯示的第6行中引用。 – David

+0

@David Undefined superglobals不會在我的配置上拋出錯誤。它們只返回NULL。 –

回答

0

此錯誤顯示因爲您正在嘗試測試並返回尚未初始化的變量。

推薦的解決方案是使用isset(),而不是比較它與一個空字符串:

return (isset($_COOKIE["pagination_pos"]) ? $_COOKIE["pagination_pos"] : 1); 

你還應該注意的是,因爲你有PHP安裝程序顯示錯誤E_NOTICE這個錯誤纔會出現。如果您願意,您可以禁用該功能,儘管它是「在開發過程中推薦的」。


This question被稱爲這種類型的錯誤的「一般參考問題」。你可以找到一些非常詳細的解釋there

+0

謝謝@David ...我應該考慮isset()...我很抱歉,我仍在學習更多關於web開發的...現在我的分頁工作正常...... – user3413550

0

未定義的變量,如果沒有設置Cookie - 你不應該「迴歸」 - 你應該使用這個

 } else { 
    return NULL; 
    }