php警告&严格的标准

时间:2015-12-15 02:29:21

标签: php

我使用$_SESSION[''];在用户登录后获取值。此数据来自users表。

我正在尝试

`SELECT *` `FROM roster`

通过执行查询并为用户API=$API

分配每个值的var

我可以使用以下方法:

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'];

        }

但是,当我这样做时,我会收到以下错误。如果我删除上面的代码没有错误,等等。

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

有人可以确定我哪里出错吗?

  

警告:在第48行的/home/.../public_html/.../.../.../db.php中从空值创建默认对象

第48行: $return->$i = $row;

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

严格标准:非静态方法不应静态调用Access :: is_logged(),假设$ this来自/home/.../public_html/.../中的不兼容上下文。第64行的../.../APP.php

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;
        }

    }

2 个答案:

答案 0 :(得分:2)

试试这些,看看它们是否有效:

// 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
            }
    }

答案 1 :(得分:-1)

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