php警告和严格的标准

问题描述:

我使用$_SESSION[''];在用户登录后获取用户的值。此数据来自users表。php警告和严格的标准

我再努力

`SELECT *` `FROM roster` 

做一个查询并分配一个变种每个值当用户API=$API

我可以通过以下操作:

error_reporting(E_ALL); 

    include ('database_connection.php'); 
    $API  = $_SESSION['API']; 

     if ($API !== false) { 
      $roster_query = "SELECT * FROM roster WHERE API='$API'"; 
      $result = mysqli_fetch_array(mysqli_query($dbc, $roster_query)); 

    /* ROSTERS TABLE */ 
      $StreetName  = $result['streetname']; 
      $HouseNum = $result['housenumber']; 
      $City  = $result['city']; 
      $State  = $result['state'];  
      $Zipcode  = $result['zipcode'];        

    /* SESSION */ 
      $FirstName = $_SESSION['firstname']; 
      $LastName = $_SESSION['lastname']; 
      $Email  = $_SESSION['email']; 

    /* this->$vars - Specific for this form */  
      $ExecutionDate = date("Y:M:D");  
      $DOCSIGNEDBYIP = $_SERVER['REMOTE_ADDR']; 

     } 

但是,我遇到以下错误。如果我删除上面的代码没有错误等。

现在这不是'打破'我的代码,但我不想扫地毯下,并稍后解决。

有人可以确定我要去哪里吗?

警告:上线从在/home/.../public_html/.../.../.../db.php空值创建缺省对象48

线48:$return->$i = $row;

if(!$return_array) { 
    while($row = mysql_fetch_object($sql_query)) { 
     $return->$i = $row; 
     $i++; 
    } 

严格的标准:非静态方法访问::是_logged()不应该被静态调用,假定$这从上线在/home/.../public_html/.../.../.../APP.php不相容上下文64

pinAPP线64:return Access::is_logged();

public function is_logged() 
    { 
     return Access::is_logged(); 
    } 

is_logged();

<?php 
    require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'init.php'); 

    class pinAPP { 


     public function is_logged() { 
      return Access::is_logged(); 
     } 

    } 

访问

<?php 
    class Access { 
     private static $auth = false; 


     final public function is_logged($require_admin_access = false) { 
      if (! isset($_SESSION[LOGINSESSION])) 
       return false; 

      self::$auth = true; 

      if ($require_admin_access) { 
       $u = new User(); 
       if (! $u->is_admin()) 
        new Redirect(DEFAULT_RETURN_URL); 
      } 

      return self::$auth; 
     } 

    } 
+0

如果你'$回报\t = \t新stdClass的()应先解决线48;'你面前做循环。试试看。 – Rasclatt

+0

然后在'Access'类下,'is_logged()'看看是否声明了'static function is_logged()'用作'Access :: is_logged()'。 – Rasclatt

+0

您是否介意发布一个描述更多细节的答案@Rasclatt – Kray

尝试这些,看看他们的工作:

// Set an empty object for $return first 
$return = new stdClass(); 

if(! $return_array) { 
    $i = 0; 
    while ($row = mysql_fetch_object($sql_query)) { 
     $return->$i = $row; 
     $i++; 
    } 

我认为对方是说你应该有is_logged()static功能:

class Access 
    { 
     static function is_logged() 
      { 
       // code here 
      } 
    } 
+0

我的函数is_logged()已经在一个依赖于我的主Web应用程序的类中。对此的任何更改都会对我的网站造成严重破坏。有什么办法可以重组我的查询来整理我的web应用程序吗? @Rasclatt – Kray

+0

这也是第64行的错误 - 严格标准:非静态方法Access :: is_logged()不应该在/home/.../public_html/../../../file中静态调用64行上的.php ' – Kray

+0

return_array工作。谢谢,但是我得到错误^^^上面尝试与is_logged(); @Rasclatt – Kray

  1. 检查$row使用!empty($row)只是警告
  2. 找不到static functon is_logged()
+0

请您详细一点。 – Kray