2014-03-13 28 views
-3

我怎样才能修复这些错误(S):未定义指数等等

Notice: Undefined index: authData in /home/paulmc1/domains/kuarrel.tk/public_html/admin/classes/lib/SessionData.php on line 27 
Notice: Undefined index: authData in /home/paulmc1/domains/kuarrel.tk/public_html/admin/classes/lib/SessionData.php on line 29 
Notice: Undefined index: HTTP_REFERER in /home/paulmc1/domains/kuarrel.tk/public_html/index.php on line 16 
Notice: A session had already been started - ignoring session_start() in /home/paulmc1/domains/kuarrel.tk/public_html/admin/classes/lib/SessionData.php on line 26 
Notice: Undefined index: authData in /home/paulmc1/domains/kuarrel.tk/public_html/admin/classes/lib/SessionData.php on line 27 
Notice: Undefined index: authData in /home/paulmc1/domains/kuarrel.tk/public_html/admin/classes/lib/SessionData.php on line 29 
Fatal error: Class 'MongoClient' not found in /home/paulmc1/domains/kuarrel.tk/public_html/admin/classes/lib/Log.php on line 29" 

CODE:

SessionData.PHP:

<?PHP 

class SessionData{ 

    function __construct($page = 'default'){ 
     $this->SetSession($page); 
    } 


    public function SetSession($page = 'default'){ 
      $currentCookieParams = session_get_cookie_params(); 

     $rootDomain = '.kuarrel.tk'; 

     session_set_cookie_params( 
      $currentCookieParams["lifetime"], 
      $currentCookieParams["path"], 
      $rootDomain, 
      $currentCookieParams["secure"], 
      $currentCookieParams["httponly"] 
     ); 
     session_start(); 
     $this->authData = $_SESSION['authData']; 

     if($_SESSION['authData']['accountstatus']=="-1" && $page=="default"){ 
     //echo $page; 
      header("Location: account.php"); 
      //exit(); 
     } 
      /* 
      Currently Known Values 

      $this->authData['email']   
      $this->authData['id']    
      $this->authData['name']  

      */ 

    }    

    public function Retrieve($name){ 
     if(in_array($name,$this->validSessVars()) && isset($this->authData[$name])){ 
       return($this->authData[$name]); 
     } 
     return(FALSE); 
    }  

    public function RetrieveAll(){ 
     return($this->authData); 
    } 

    private function validSessVars(){ 
     $valid=array(); 
     $count=0; 
     if(is_array($this->authData)) 
     foreach($this->authData as $key => $value){ 
      $valid[$count]=$key; 
      $count++; 
     } 
     return($valid); 
    } 


    public function Logout(){ 
      unset($authData); 
      $_SESSION['authData'] = $authData; 
      header("Location: http://".$_SERVER["HTTP_HOST"]."/index.php"); 
      exit(); 
    } 

    public function Login(){ 
       unset($authData); 
       $_SESSION['authData'] = $authData; 
       header("Location: http://".$_SERVER["HTTP_HOST"]."/login.php"); 
       exit(); 
     } 

    public function CheckValidSession(){ 
     if(is_array($this->authData)&&$this->authData['id']>0){ 
      return(TRUE); 
     } 
     return(FALSE); 
    } 

    public function CheckValidFBSession(){ 
     if (!$this->CheckValidSession()){ 
      header('location: bind.php'); 
     } 

    } 


    public function CheckValidAdminSession(){ 
     if($this->authData['accountstatus']==9){ 
      return(TRUE); 
     } 
     return(FALSE); 
    } 

} 

?> 

的index.php:

<?php 

//Error Checking 
ini_set('display_errors',1); 
error_reporting(E_ALL); 

include($_SERVER["DOCUMENT_ROOT"].'/admin/classes/classes.php');  // Include local class lib 

$sess = new SessionData();  // Creates session object 
//$sess->CheckValidFBSession(); 

if($sess->CheckValidSession()){   
    header('Location: home.php'); 
} 

$log= new log($_SERVER["PHP_SELF"], $_GET, $_POST, $_SERVER['HTTP_REFERER']); 
$stats=new Statistics(); 
$totalusers=$stats->totalscope(); 

?> 
<html xmlns:fb="//www.facebook.com/2008/fbml"> 

    <script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId : '<?php echo $sess->fbappid; ?>', 
      session : <?php echo json_encode($sess->fbsession); ?>, // don't refetch the session when PHP already has it 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true // parse XFBML 
     }); 

     }; 

     (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
     }()); 
    </script> 


<title>Kuarrel | Welcome to Kuarrel!</title> 
<meta name="description" content="Kuarrel is an online directory that connects people from throughout the world." /> 
<meta name="keywords" content="kuarrel, chaibear, chai, sa-mp, sa:mp, 2014" /> 
<meta name="Generator" content="JB engine designed" /> 
<meta name="robots" content="index, follow" /> 
<meta name="OriginalPublicationDate" content="2014/03/12/01:37:22"> 
<meta name="Headline" content="Kuarrel | Welcome to Kuarrel!"> 
<meta name="IFS_URL" content="/index.php"> 
<meta name="contentFlavor" content="PAGE"> 
<meta name="CPS_SITE_NAME" content="Kuarrel | Welcome to Kuarrel"> 
<meta name="CPS_SECTION_PATH" content="Index"> 
<meta name="CPS_ASSET_TYPE" content="STY"> 
<meta name="CPS_PLATFORM" content="HighWeb"> 
<meta name="CPS_AUDIENCE" content="US"> 
<meta property="og:title" content="Kuarrel is an online directory that connects people from throughout the world."> 
<meta property="og:type" content="website"> 
<meta property="og:description" content="Kuarrel is an online directory that connects people from throughout the world."> 
<meta property="og:image" content="http://www.kuarrel.tk/images/logo-right.jpg"> 
<meta property="og:url" content="http://www.kuarrel.tk/index.php"> 
<meta property="og:site_name" content="Kuarrel"> 
    <!-- sO3vWw3hwrnxdrwPGTKy2ZOW6yU --> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
    FB.Canvas.setAutoResize(); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
    </script> 
<script src="//connect.facebook.net/en_US/all.js#appId=194568130593245&amp;xfbml=1&quot;&gt;&lt;/script&gt; 

<center> 
<table class="bordertable" cellspacing=0 cellpadding=0 border=0 width=700> 
    <tr><td> 
     <table class="bottomborder" cellspacing=0 cellpadding=0 border=0 width=100%> 
     <tr><td width=350 bgcolor=#3B5998> 
      <img src='images/logo-left.jpg'></td> 
      <td><table cellspacing=0 cellpadding=0 border=0 width=100%><tr><td> 
      <table cellspacing=0 cellpadding=0 border=0 width=100%> 
      <tr><td><a href='register.php'><img alt='Register' src='images/logo-right.jpg' border=0></a></td> 
      <td width=100% bgcolor=#3B5998> </td></tr></table></td></tr> 
      <tr><td><table cellspacing=0 cellpadding=4 border=0 width=100%><tr height=21> 
      <!--<td bgcolor=#3B5998 width=10> </td>--> 
<?PHP 

      if(!$sess->CheckValidSession()){    
       include('modules/default/topnav.php'); 
      }else{ 
       include('modules/loggedin/topnav.php');  
      } 
      ?>     <td bgcolor=#3B5998 width=100%> </td> 
      </tr></table></td> 
      </tr></table> 
     </td></tr></table> 
    </td></tr> 
    <tr><td><table cellspacing=0 cellpadding=2 border=0 width=100%> 
     <tr><td valign=top> 
     <table cellspacing=0 cellpadding=0 border=0 width=105> 
     <tr><td> 
<?PHP 

      if(!$sess->CheckValidSession()){    
       include('modules/default/leftnav.php'); 
      }else{ 
       include('modules/loggedin/leftnav.php');   
      } 
      ?> 
         </td></tr> 
     </table> 
     </td><td width=595 valign=top> 
     <table class="bordertable" cellspacing=0 cellpadding=0 border=1 width=100%><tr><td> 

<table cellspacing=0 cellpadding=2 border=0 width=100%> 
<tr><td class='white' bgcolor=#3B5998>Welcome to Kuarrel!</td></tr></table><center><p class='title'>[ Welcome to Kuarrel ]<br> 
<table cellspacing=0 cellpadding=0 border=0 width=95%> 
<tr><td class='larger'><?<img src="https://phpacademy.org/img/smileys/frown.png" width="18" height="18" alt="=(" title="=(" class="bbcode_smiley"/>!empty($_GET['error']));?>"<span style='color:red;font-size:16px;'>Facebook login has been disabled for today, please try again tomorrow.</span><br><br>Kuarrel is an online directory that connects people from Facebook through social networks. 
<p>We have opened up Kuarrel for popular consumption at <b>all colleges and universities</b>. If you are not part of a college or university, you will be added to the default Kuarrel network. 
<p>Your account is limited to your own college or university. 
<p>You can use Kuarrel to: 
<br> <b>•</b> Search for people at your school 
<br> <b>•</b> Find out who are in your classes 
<br> <b>•</b> Look up your friends' friends 
<br> <b>•</b> See a visualization of your social network 

<p>To get started, click below to register with your facebook account.<!--<br><font size="+1">Join the <?=$totalusers?> people at Kuarrel today.</font>--> 



<center> 
<?php if(strlen($_SESSION['notpartofacollege'])>2){ 
echo "<b>".$_SESSION['notpartofacollege']."</b>"; 
} 
?> 
<div id="fb-root"></div> 
<center><input class='inputsubmit' type="button" value='Register' onclick='javascript:document.location="register.php";'> <input class='inputsubmit' type="button" value=' Login ' onclick='javascript:document.location="login.php";'> 
<br> </td></tr></table> </td></tr></table> 




    </td></tr></table> 
    <center> 
    <?PHP include('modules/default/bottomnav.php'); ?> 
    </center><br> 
    </td></tr></table> 

Log.PHP:

class log{ 

    public function __construct($page, $get= '', $post = '', $ref = '') { 

     $sess = new SessionData('account'); 
     if($sess->CheckValidSession()){ 
      $userid=$sess->Retrieve('id'); 
     }else{ 
      $userid="0"; 
     } 

     if($userid=='45403199'){ 
      return false; 
     } 


     if(!$ref) $ref=""; 

     $ip=$_SERVER["REMOTE_ADDR"]; 


     $values=array('page'=>$page,'ip'=>$ip,'userid'=>$userid, 'timestamp'=>(int) time(), 'gets'=>$get, 'posts'=>$post, 'referral'=>$ref); 
     $m = new MongoClient(); 
     $collection = $m->selectCollection('kuarrel', 'log'); 
     $collection->insert($values); 

     if($ip=='202.94.191.47'||$ip=='202.94.191.13'||$ip=='202.94.191.183'){ 
      echo "Your address: ".$ip." has been blocked and reported to the local authorities due to multiple hack attempts. Please contact [email protected] if you feel this is an error."; 
      die(); 
     } 
    } 

    function lastpage($userid){ 
     $m = new MongoClient(); 
      $collection = $m->selectCollection('kuarrel', 'log'); 
      $cursor = $collection->find(array('userid'=>$userid)); 
      $cursor->sort(array('timestamp'=>-1))->limit(2); 
      $records = iterator_to_array($cursor); 

      return($records[1]['page']); 
    } 

} 
?> 

感谢您的帮助。 :)

+1

请参阅http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – Samuel

+1

通过Google搜索“如何解决注意:未定义的PHP索引”来修复您的未定义索引。然后,我建议为'注意:一个会话已经开始'为第二种类型的错误做一个谷歌。我会留下解决方案,以解决第三种错误达到您的想象,但其解决方案与第一种和第二种错误的解决方案类似。一旦Google完成,写/改变少量的代码,瞧。错误修复。 – MLeFevre

回答

0

添加一个简单的isset检查是否存在会话中的authData值会解决此问题。

if(isset($_SESSION['authData'])){ 

     $this->authData = $_SESSION['authData']; 
} 
0

$ _ SERVER [ 'HTTP_REFERER']不会,如果你直接打开页面设置。 所以最好是检查它的价值在使用前:

if(isset($_SERVER['HTTP_REFERER']) 
    ...do something here 

另外,请确保您设置$_SESSION['authData']使用它

最后,MongoClient应该使用它之前定义之前。我没有看到它的任何地方。