2011-08-04 5 views
0

모든 스타일 시트, js 등의 파일이 포함 된 index.php 파일이 있으며 require.php의 콘텐츠 영역에서 파일을 한 번만 변경합니다. 문제는 사용자가 요청할 때입니다. 일부 다른 페이지 세션이 손실됩니다 .... 그리고 세션 변수는 정의되지 않았습니다 ... 이것은 내 index.php입니다 ... main.php에 액세스하는 동안 세션 변수가 정의되지 않은 오류가 발생합니다 ... ---- index .PHP 파일 -----URL을 라우팅하는 동안 세션 손실 값

<?php session_start();?> 
<?php require_once("cc_includes/sessions.php"); ?> 
<?php require_once('cc_includes/functions.php'); ?> 
<?php require_once("cc_includes/sanitize.php"); ?> 
<?php require_once('cc_includes/route.php'); ?> 
<?php require_once("cc_includes/mydb.php"); ?> 
<?php 
    if($request_uri_header!='') 
    { 
     require_once($request_uri_header); 
    } 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <?php require_once("cc_includes/default_files.php");?> 
</head> 
<title><?php echo $the_title;?></title> 
<body id="page1"> 
<!-- header --> 
    <div class="bg"> 
     <section> 
      <?php require_once("cc_includes/message.php"); ?> 
      <div class="main"> 
       <header> 
        <?php require_once("cc_includes/logo.php"); ?> 
        <?php require_once("cc_includes/navigation.php");?> 
        <?php require_once("cc_includes/slider.php"); ?> 
       </header> 
       <section id="content"> 
        <div class="padding"> 
         <?php require_once("cc_includes/boxes.php"); ?> 
         <div class="wrapper"> 
          <div class="col-3"> 
           <div class="indent"> 
            <?php 
             if($request_uri!='') 
             { 
              require_once($request_uri); 
             } 
            ?> 
           </div> 
          </div> 
         </div> 
        </div> 
       </section> 
       <?php require_once("cc_includes/footer.php"); 
       require_once("cc_includes/end_scripts.php"); 
       ?> 
      </div> 
     </section> 
    </div> 
</body> 
</html> 

----- sessions.php 파일 ------

$session_user=false; 
    $session_message=false; 
    if(!isset($_SESSION) || !isset($_SESSION['user'])) 
    { 
     $session_user=array(
       's_name'=>'', 
       's_gender'=>'', 
       'college_id'=>'', 
       's_joining'=>'Dynamic', 
       's_department'=>'Dynamic', 
       's_location'=>'', 
       's_dob'=>'', 
       's_approved'=>0 
      ); 
     $_SESSION['user']=serialize($session_user); 

    } 
    else 
    { 
     //print_r(unserialize($_SESSION['user'])); 
     //exit; 
     $session_user=unserialize($_SESSION['user']); 
    } 

-----route.ph P 파일 --------

if(isset($_GET['url'])) 
    { 
     $total_request=explode('/',$_GET['url']); 
     if(count($total_request)>1) 
     { 
      $_GET['url']=$total_request[0]; 
      array_shift($total_request); 
      $_GET['action']=$total_request[0]; 
      array_shift($total_request); 
      foreach($total_request as $key=>$value) 
      { 
       $_GET['param'.$key]=$value; 
      } 
      unset($total_request); 
     } 
     if($session_user['s_approved']!=0) 
     { 
      if($_GET['url']=='' || $_GET['url']=='index.php') 
      { 
       header("location: main.php"); 
      } 
      if(!is_file($_GET['url'])) 
      { 
       set_error_message("No Such Location Exits!"); 
       header("location: main.php"); 
      } 
      $request_uri=$_GET['url']; 
      $request_uri_header="headers/".str_replace('.php','.h',$request_uri); 

     } 
     else 
     { 
      $request_uri="users/login.php"; 
      $request_uri_header=str_replace('.php','.h',$request_uri); 
      if($_GET['url']!='' && $_GET['url']!='index.php') 
      { 
       if($_GET['url']=='services.php' || $_GET['url']=='register.php') 
       { 
        $request_uri=$_GET['url']; 
        $request_uri_header="headers/".str_replace('.php','.h',$request_uri); 
       } 
       else 
       { 
        if(is_file($_GET['url'])) 
        { 
         set_error_message("You need to Login Before Accessing Other Site Area!"); 
        } 
        else 
        { 
         set_error_message("No Such Location Exits!"); 
        } 
        header("location: index.php"); 
       } 
      } 
     } 
     if(!is_file($request_uri_header)) 
     { 
      $request_uri_header=''; 
     } 
    } 
    else 
    { 
     $request_uri="users/login.php"; 
     $request_uri_header=str_replace('.php','.h',$request_uri); 
    } 

main.h 파일 ---- -----

if(!registered_user() && !admin_user()) 
    { 
     set_error_message("Please Login To View The Page!",2); 
     header("Location: index.php"); 
    } 
    set_title("College Connections | Home"); 
    view_boxes(false); 
    view_slider(FALSE); 

----- main.php 파일 ---- -

<?php 
    // if(!isset($session_user)) 
    //{ 
     //echo $session_user['s_name']; 
     //exit; 
    //} 
    //print_r($session_user); 
    //exit; 
    echo"<h1 class=\"profile\">".$session_user['s_name']."</h1><h1 class=\"blue_profile\">'s Profile</h1><a href=\"dashboard.php\" style='float:right;margin-right:30px;margin-top:20px;'>College Dashboard</a><br /></br /><br />"; 
    echo"<hr>"; 
    echo"<div class=\"prof_image\">"; 
    $c_id=$session_user['college_id']; 
    $image=mysql_query("select path from img_upload where username=\"$c_id\" limit 1",$connection); 
    if(!$image) 
    { 
     die("database query failed".mysql_error()); 
    } 
    echo mysql_error($connection); 
?> 

답변

0

당신의 index.php 이외의 파일에 session_start()이라고하지 그래서 다른 페이지는 세션이

+0

을 잃었되고 있지만,이 호출로 파일의 index.php에 포함 된로드 될 때. .... 그래서 왜 모든 파일에서 세션 시작을 작성해야합니까 .... 그리고 사이트는 꽤 기능적이지만 그것이 localhost에서 실행할 때 나는이 오류가 발생합니다. – Birju

+0

($ request_uri! = '') { require_once ($ request_uri); }이 index.php에 있으며 route.php에서 조작되었습니다 – Birju

+0

"사용자가 다른 페이지를 요청할 때"라고 썼을 때 index.php 파일에 포함되지 않은 페이지를 참조하고 있다고 생각했습니다. 또한 route.php는'header ("location : main.php")'를 호출 할 때 index.php에로드 된 내용없이 main.php로 사용자를 리디렉션하는 것처럼 보입니다. 수동으로 세션을 설정하고 작동하면 수동으로 세션을 생성해야합니다 그들이 일을한다면 그것은 세션이 데이터없이 다시 쓰여지고 있다는 것을 의미하기 때문입니다. 미안하지만 지금은 도망 가야하므로 오늘은 더 이상 도움을 줄 수 없지만 도움이되기를 바랍니다 :) – Ryan

관련 문제