2011-08-22 31 views
0

我遇到了一個服務器通知,似乎並未影響加載我的頁面,但仍然在每次加載頁面時在錯誤日誌中創建一個新條目。 。這錯誤是: PHP公告:未定義指數:用C件事:\文件位置\ htdocs中\的index.php上線1PHP通知 - index.php上的未定義索引

我不知道這個問題是否真的是在第一行或在隨後的行,所以我包含了整個文件的修改版本。對我來說奇怪的是,在其他幾個文件上有相同的代碼行,並且不會在其中引發問題。此外,價值正確提取,一切都很好,我只是不知道要改變什麼,以避免通知。

$thingvalue = $_REQUEST['thing']; 

include("mdetect.php"); 

    $iphoneTierHomePage = 'mobilemain.php'; 
    $iphoneTierMobilePage = 'mobilepage.php?thing=' . $thingvalue; 
    $genericMobileDeviceHomePage = 'mobilemain.php'; 
    $genericMobileDeviceMobilePage = 'mobilepage.php?thing=' . $thingvalue; 
    $line1 = define('WP_USE_THEMES', true); 
    $line2 = require('./wp-blog-header.php'); 
    $desktopPage == $line1 + $line2; 

    $uagent_obj = new uagent_info(); 

    function AutoRedirectToProperHomePage() 
    { 
    global $thingvalue, $uagent_obj, $iphoneTierHomePage, $genericMobileDeviceHomePage, $iphoneTierMobilePage, $genericMobileDeviceMobilePage, $desktopPage; 

    if ($thingvalue == ''){ 

     if ($uagent_obj->isTierIphone == $uagent_obj->true) 
     header ('Location: '.$iphoneTierHomePage); 

     else if ($uagent_obj->DetectMobileQuick() == $uagent_obj->true) 
     header ('Location: '.$genericMobileDeviceHomePage); 

     else 
     header ('Location: '.$desktopHomePage); 
    } 
    if ($thingvalue != ''){ 
     if ($uagent_obj->isTierIphone == $uagent_obj->true) 
     header ('Location: '.$iphoneTierMobilePage); 

     else if ($uagent_obj->DetectMobileQuick() == $uagent_obj->true) 
     header ('Location: '.$genericMobileDeviceMobilePage); 

     else 
     header ('Location: '.$desktopPage); 
    } 
    } 

AutoRedirectToProperHomePage(); 
+0

鍵入此在第二行並看看它是什麼得到你: var_dump($ _ REQUEST ['thing']) – Nabeel

回答

4

它指的是在index.php文件的第一行數組索引: 試試這個:

$thingvalue = empty($_REQUEST['thing']) ? '' : $_REQUEST['thing']; 
+0

再次,我被這個社區吹走了!非常感謝你,道格! – tylerl

0

的問題是,你想之前在這裏得到的東西價值 $thingvalue = $_REQUEST['thing'];檢查值是否先存在。

先試試這個

if(!isset($_REQUEST['thing'])) 
{ 
    do something because its missing 
} 
1

它試圖引用$_REQUEST超全局內部指標thing。如果有人直接查看該頁面,並且未通過表單發佈,或者在查詢字符串中以?thing=foobar指示,則PHP將顯示該通知。我建議不使用$_REQUEST,因爲它會檢查$_GET$_POST這是不是很安全/實用 - 然後檢查是否被設置,如果沒有,採取一些行動failsave:

try 
{ 
    if(!isset($_POST['thing'])) 
    { 
     throw new Exception('No direct access. Please use our <a href="http://www.mysite.com/contact">Contact form</a>'); 
    } 
    else 
    { 
     $thingvalue = $_POST['thing']; 
    } 
} 
catch(Exception $e) 
{ 
    echo $e->getMessage(); 
    exit(); 
}