2013-03-29 3 views
0

색인 생성 세션에 몇 가지 문제가 있습니다. 내가 원하는 세션을 색인화하는 함수를 만들었습니다. 나는 그것을 보고서 시스템에 사용했다. 사람들은 같은 것을보고하지 않고 보고서 테이블에 대량 삽입을한다. 그것은 효과가 있으며, 사람들을 막고 있습니다. 그러나 세션이 인덱싱되지 않을 때 처음으로보고 할 때 다음 오류가 표시됩니다. 알림 : 정의되지 않은 색인 : 12 번째 줄에있는 C : \ xampp \ htdocs \ sucess \ reportprocess.php의 SessionReport8세션 관련 문제 (PHP)

null로 설정했습니다. 나는 그것을 반향하고, 그것은 null, undefined가 아니다. 그것을 해결하는 방법? 여기

는 기능입니다 :

function indexarSession($Session) 
{ 
    if (!isset($Session)) 
    { 
     $Session = null; 
     return $Session; 
    } 
    else 
    { 
     $Variavel = $Session; 
     return $Variavel; 
    } 
} 

그리고 어디에 적용 됐어요 : 고급의

$SessionReport = $Funcoes->indexarSession($_SESSION["SessionReport" . $PostID]); 

     if (!isset($SessionReport)) 
    { 
     **DO THE INSERT* 
    } 
    else 
    { 
      **SHOW MESSAGE** 
    } 

감사합니다.

+0

인쇄 $에 _SESSION [ "SessionReport". $ PostID] 그리고 우리에게 출력을 알려주도록하자. –

답변

0

세션이 설정되어 있는지 확인하지 않고 indexarSession() 함수에서 Session을 사용하고 있습니다.

시도,

if(isset($_SESSION["SessionReport" . $PostID])){ 
    $SessionReport = $Funcoes->indexarSession($_SESSION["SessionReport" . $PostID]); 
} else { 
    // Session not set. 
} 
+0

하지만이 함수는 스크립트의 조건부를 피하기 위해서이다. 그냥 함수를 사용하여 설정하거나하지. 스크립트 페이지에서/else를 피하기 위해 함수를 어떻게 변경해야합니까? –

+0

함수에 전달하기 전에 isset 검사를 수행해야합니다. 오류를 줄이려면 @ $ _ SESSION [ "SessionReport"를 수행 할 수 있습니다. $ PostID] 그러나 이것은 좋은 습관이 아닙니다. – Adrian

+0

좋은 연습이 아닌 이유는 무엇입니까? 정보를 위해서. –