2012-12-17 55 views
0

我試圖在某處實現分頁,我有這個問題:分頁問題(PHP超全局變量的問題,不確定的指數)

我有這部分改變鏈接:

echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> "; 

這給這個錯誤對於這部分:

$Page = $_GET["Page"]; 
if(!$_GET["Page"]) 
{ 

它說未定義的指標.. 爲什麼我得到這個錯誤? 謝謝

+2

'''如果(!isset($ _ GET [ '頁'])){''' 檢查網頁是否設置,您的變種預計頁面已經設置 – Luceos

+0

什麼是確切的題? – Peon

+4

而不是'<<'使用'< <'來防止混亂的標籤 – Veger

回答

3

你應該引用數組索引。也使用html實體。 像這樣

echo " <a href='{$_SERVER['SCRIPT_NAME']}?Page=$Prev_Page'>&lt;&lt; Back</a> "; 

而且它的安全檢查,如果存在$_GET["Page"]

$Page = isset($_GET["Page"]) ? $_GET["Page"]: false; 
+0

那不是真的需要。 –

+0

不引用數組鍵只會引發警告。你仍然應該這樣做,但這不是問題。 –

+0

@RocketHazmat謝謝。我已經添加了'$ _GET'索引檢查。 –

1

發生這種情況是因爲您缺少數組中的索引。 $ _GET只是一個數組,所以你應該首先檢查鍵是否存在。

$Page = (array_key_exists('page', $_GET)) ? $_GET["page"] : false; 
if($Page===false) 
{ 
    //no page 
    return; 
} 
+0

優秀的,這解決了它快:) :) 謝謝你,我幾分鐘內接受它! –

+0

感謝downvote。我真的很討厭那個+2,喜歡這個圓號:) –

0
// empty() works even if the variable doesn't exist, kind of like isset() 
if(!empty($_GET['Page']) !== false) { 
    // Do stuff 
    $page = $_GET['Page']; 
} 
+0

小心空了。它也返回false如果頁面= 0,你可能想接受http://php.net/manual/en/function.empty.php –

+0

很高興知道,謝謝! – qwerty

+0

Yw,但你的編輯創建了與Ozi一樣的問題。你正在檢查$ _GET ['Page'],然後你知道鑰匙在那裏 –