2011-08-22 5 views
0

내 페이지 로딩에 영향을 미치지 않지만 그럼에도 불구하고 페이지가로드 될 때마다 오류 로그에 새로운 항목을 만드는 서버 공지가 실행 중입니다. 그 오류는 다음과 같습니다 : PHP 공지 사항 : 정의되지 않은 색인 : C : \ File 위치에있는 것 1 행의 htdocs \ index.phpPHP 공지 - 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

유형이 : 일부 failsave 조치를 복용 설정된 경우 다음 확인하고, 그렇지 않은 경우 - 나는 그것이 실제/매우 안전하지 않은 두 $_GET$_POST이 검사로 $_REQUEST를 사용하지 않는 것이 좋습니다 것 무엇을 얻을 수 있는지 알아보십시오. var_dump ($ _ REQUEST [ 'thing']) – Nabeel

답변

4
그것의 index.php의 첫 번째 행의 배열 인덱스를 참조 것

: 이 시도 :

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

다시 한번이 커뮤니티에 의해 날아갔습니다! 고마워, 더그! – tylerl

0

문제는 당신이 전에 여기 $thingvalue = $_REQUEST['thing'];을 물건의 값을 얻어내는 것이 목적입니다 값이 먼저 존재하는지 검사.

IT는 $_REQUEST 자동 전역 내부 인덱스 thing을 참조하려고하는 첫 번째

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

을 시도합니다. 누군가가 해당 페이지를 직접보고 있고 쿼리 문자열에 ?thing=foobar과 함께 양식이나 지시문을 통해 게시되지 않은 경우 PHP는 해당 통지를 표시합니다. 두 번째 줄에

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(); 
} 
관련 문제