[Help]Stupid Unknow Error[Help]

Status
Not open for further replies.

Li1M0ST3Rz

I <3 Bianca
Sep 13, 2010
269
166
So i gotten this:
0DVazICaPTd0.png

ok that no error there and its connected to class.user.php and i clicked user then gotten this:
cNs3M2PXPTd0.png

code of class.user.php:
PHP:
<?php
/***********************************
*    CookieFramework Edition        *
*        Coded: Li1M0ST3Rz          *
*    Developed: CookieMonster      *
*    2nd Developed: xElmo          *
***********************************/
 
/**********************************
* Flexible Access - The main class*
*                                  *
* @param string $dbName              *
* @param string $dbHost          *
* @param string $dbUser              *
* @param string $dbPass              *
* @param string $dbTable          *
**********************************/
 
class flexibleAccess{
  /*Settings*/
  /**
  * The database that we will use
  * var string
  */
  var $dbName = 'cookie';
  /**
  * The database host
  * var string
  */
  var $dbHost = 'localhost';
  /**
  * The database port
  * var int
  */
  var $dbPort = 3306;
  /**
  * The database user
  * var string
  */
  var $dbUser = 'root';
  /**
  * The database password
  * var string
  */
  var $dbPass = 'yei1440';
  /**
  * The database table that holds all the information
  * var string
  */
  var $dbTable  = 'users';
  var $dbData = 'cookie';
  /**
  * The session variable ($_SESSION[$sessionVariable]) which will hold the data while the user is logged on
  * var string
  */
  var $sessionVariable = 'userSessionValue';
  /**
  * Those are the fields that our table uses in order to fetch the needed data. The structure is 'fieldType' => 'fieldName'
  * var array
  */
  var $tbFields = array(
      'userID'=> 'userID',
      'login' => 'username',
      'pass'  => 'password',
      'email' => 'email',
      'active'=> 'active'
  );
    /**
  * When user wants the system to remember him/her, how much time to keep the cookie? (seconds)
  * var int
  */
  var $remTime = 2592000; //One month
  /**
  * The name of the cookie which we will use if user wants to be remembered by the system
  * var string
  */
  var $remCookieName = 'CookiePass';
  /**
  * The cookie domain
  * var string
  */
  var $remCookieDomain = '';
  /**
  * The method used to encrypt the password. It can be sha1, md5 or nothing (no encryption)
  * var string
  */
  var $passMethod = 'sha1';
  /**
  * Display errors? Set this to true if you are going to seek for help, or have troubles with the script
  * var bool
  */
  var $displayErrors = true;
  /*Do not edit after this line*/
  var $userID;
  var $dbConn;
  var $userData=array();
  /**
  * Class Constructure
  *
  * @param string $dbConn
  * @param array $settings
  * @return void
  */
  function flexibleAccess($dbConn = '', $settings = '')
  {
        if ( is_array($settings) ){
            foreach ( $settings as $k => $v ){
                    if ( !isset( $this->{$k} ) ) die('Property '.$k.' does not exists. Check your settings.');
                    $this->{$k} = $v;
            }
        }
        $this->remCookieDomain = $this->remCookieDomain == '' ? $_SERVER['HTTP_HOST'] : $this->remCookieDomain;
        $this->dbConn = ($dbConn=='')? mysql_connect($this->dbHost.':'.$this->dbPort, $this->dbUser, $this->dbPass):$dbConn;
        if ( !$this->dbConn ) die(mysql_error($this->dbConn));
        mysql_select_db($this->dbName, $this->dbConn)or die(mysql_error($this->dbConn));
        if( !isset( $_SESSION ) ) session_start();
        if ( !empty($_SESSION[$this->sessionVariable]) )
        {
            $this->loadUser( $_SESSION[$this->sessionVariable] );
        }
        //Maybe there is a cookie?
        if ( isset($_COOKIE[$this->remCookieName]) && !$this->is_loaded()){
          //echo 'I know you<br />';
          $u = unserialize(base64_decode($_COOKIE[$this->remCookieName]));
          $this->login($u['uname'], $u['password']);
        }
  }
  /**
      * Login function
      * @param string $uname
      * @param string $password
      * @param bool $loadUser
      * @return bool
  */
  function login($uname, $password, $remember = false, $loadUser = true)
  {
        $uname    = $this->escape($uname);
        $password = $originalPassword = $this->escape($password);
        switch(strtolower($this->passMethod)){
          case 'sha1':
              $password = "SHA1('$password')"; break;
          case 'md5' :
              $password = "MD5('$password')";break;
          case 'nothing':
              $password = "'$password'";
        }
        $res = $this->query("SELECT * FROM `{$this->dbTable}`
        WHERE `{$this->tbFields['login']}` = '$uname' AND `{$this->tbFields['pass']}` = $password LIMIT 1",__LINE__);
        if ( @mysql_num_rows($res) == 0)
            return false;
        if ( $loadUser )
        {
            $this->userData = mysql_fetch_array($res);
            $this->userID = $this->userData[$this->tbFields['userID']];
            $_SESSION[$this->sessionVariable] = $this->userID;
            if ( $remember ){
              $cookie = base64_encode(serialize(array('uname'=>$uname,'password'=>$originalPassword)));
              $a = setcookie($this->remCookieName,
              $cookie,time()+$this->remTime, '/', $this->remCookieDomain);
            }
        }
        return true;
  }
 
  /**
      * Logout function
      * param string $redirectTo
      * @return bool
  */
  function logout($redirectTo = '')
  {
    setcookie($this->remCookieName, '', time()-3600);
    $_SESSION[$this->sessionVariable] = '';
    $this->userData = '';
    if ( $redirectTo != '' && !headers_sent()){
      header('Location: '.$redirectTo );
      exit;//To ensure security
    }
  }
  /**
      * Function to determine if a property is true or false
      * param string $prop
      * @return bool
  */
  function is($prop){
      return $this->get_property($prop)==1?true:false;
  }
 
    /**
      * Get a property of a user. You should give here the name of the field that you seek from the user table
      * @param string $property
      * @return string
  */
  function get_property($property)
  {
    if (empty($this->userID)) $this->error('No user is loaded', __LINE__);
    if (!isset($this->userData[$property])) $this->error('Unknown property <b>'.$property.'</b>', __LINE__);
    return $this->userData[$property];
  }
  /**
      * Is the user an active user?
      * @return bool
  */
  function is_active()
  {
    return $this->userData[$this->tbFields['active']];
  }
 
  /**
  * Is the user loaded?
  * @ return bool
  */
  function is_loaded()
  {
    return empty($this->userID) ? false : true;
  }
  /**
      * Activates the user account
      * @return bool
  */
  function activate()
  {
    if (empty($this->userID)) $this->error('No user is loaded', __LINE__);
    if ( $this->is_active()) $this->error('Allready active account', __LINE__);
    $res = $this->query("UPDATE `{$this->dbTable}` SET {$this->tbFields['active']} = 1
    WHERE `{$this->tbFields['userID']}` = '".$this->escape($this->userID)."' LIMIT 1");
    if (@mysql_affected_rows() == 1)
    {
        $this->userData[$this->tbFields['active']] = true;
        return true;
    }
    return false;
  }
  /*
  * Creates a user account. The array should have the form 'database field' => 'value'
  * @param array $data
  * return int
  */ 
  function insertUser($data){
    if (!is_array($data)) $this->error('Data is not an array', __LINE__);
    switch(strtolower($this->passMethod)){
      case 'sha1':
          $password = "SHA1('".$data[$this->tbFields['pass']]."')"; break;
      case 'md5' :
          $password = "MD5('".$data[$this->tbFields['pass']]."')";break;
      case 'nothing':
          $password = $data[$this->tbFields['pass']];
    }
    foreach ($data as $k => $v ) $data[$k] = "'".$this->escape($v)."'";
    $data[$this->tbFields['pass']] = $password;
    $this->query("INSERT INTO `{$this->dbTable}` (`".implode('`, `', array_keys($data))."`) VALUES (".implode(", ", $data).")");
    return (int)mysql_insert_id($this->dbConn);
  }
  /*
  * Creates a random password. You can use it to create a password or a hash for user activation
  * param int $length
  * param string $chrs
  * return string
  */
  function randomPass($length=10, $chrs = '1234567890qwertyuiopasdfghjklzxcvbnm'){
    for($i = 0; $i < $length; $i++) {
        $pwd .= $chrs{mt_rand(0, strlen($chrs)-1)};
    }
    return $pwd;
  }
  ////////////////////////////////////////////
  // PRIVATE FUNCTIONS
  ////////////////////////////////////////////
 
  /**
      * SQL query function
      * @access private
      * @param string $sql
      * @return string
  */
  function query($sql, $line = 'Uknown')
  {
    //if (defined('DEVELOPMENT_MODE') ) echo '<b>Query to execute: </b>'.$sql.'<br /><b>Line: </b>'.$line.'<br />';
    $res = mysql_db_query($this->dbName, $sql, $this->dbConn);
    if ( !res )
        $this->error(mysql_error($this->dbConn), $line);
    return $res;
  }
 
  /**
      * A function that is used to load one user's data
      * @access private
      * @param string $userID
      * @return bool
  */
  function loadUser($userID)
  {
    $res = $this->query("SELECT * FROM `{$this->dbTable}` WHERE `{$this->tbFields['userID']}` = '".$this->escape($userID)."' LIMIT 1");
    if ( mysql_num_rows($res) == 0 )
        return false;
    $this->userData = mysql_fetch_array($res);
    $this->userID = $userID;
    $_SESSION[$this->sessionVariable] = $this->userID;
    return true;
  }
 
  /**
      * Produces the result of addslashes() with more safety
      * @access private
      * @param string $str
      * @return string
  */ 
  function escape($str) {
    $str = get_magic_quotes_gpc()?stripslashes($str):$str;
    $str = mysql_real_escape_string($str, $this->dbConn);
    return $str;
  }
 
  /**
      * Error holder for the class
      * @access private
      * @param string $error
      * @param int $line
      * @param bool $die
      * @return bool
  */ 
  function error($error, $line = '', $die = false) {
    if ( $this->displayErrors )
        echo '<b>Error: </b>'.$error.'<br /><b>Line: </b>'.($line==''?'Unknown':$line).'<br />';
    if ($die) exit;
    return false;
  }
 
      public $uid = 0;
      public $userid = 0;
      public $username;
      public $email;
      public $name;
public $logged_in = null;
public $rank;
 
  function loginCheck()
      {
          if (isset($_SESSION['username']) && $_SESSION['username'] != "Guest") {
              $row = $this->getUserInfo($_SESSION['username']);
              $this->uid = $row['id'];
              $this->username = $row['username'];
              $this->email = $row['email'];
              $this->name = $row['fname'].' '.$row['lname'];
              $this->rank = $row['rank'];
 
              return true;
          } else {
              return false;
          } 
      }
  function startSession()
      {
        session_start();
        $this->logged_in = $this->loginCheck();
       
        if (!$this->logged_in) {
            $this->username = $_SESSION['username'] = "Guest";
            $this->rank = 0;
        }
}
      private function getUserId()
      {
            global $core;
          if (isset($_GET['userid'])) {
              $userid = (is_numeric($_GET['userid']) && $_GET['userid'] > -1) ? intval($_GET['userid']) : false;
              $userid = sanitize($userid);
             
              if ($userid == false) {
                  $core->error("You have selected an Invalid Userid","Users::getUserId()");
              } else
                  return $this->userid = $userid;
          }
      } 
    public function is_Admin()
      {
          return($this->rank == 7);
     
      }   
}
?>

and both of the php file are coded the same.
 

Ecko

23:37 [autobots] -!- eckostylez [[email protected]]
Nov 25, 2012
1,396
960
Js.. the index & login i the same codes.
That doesn't help. We won't know what it's referencing if we can't see the line that is throwing the error. At this point it could be a lot of things...

$user may not be an object or could be empty. run var_dump() on that or give print_r() output on the query to see if it's returning the correct data
 

Li1M0ST3Rz

I <3 Bianca
Sep 13, 2010
269
166
That doesn't help. We won't know what it's referencing if we can't see the line that is throwing the error. At this point it could be a lot of things...

$user may not be an object or could be empty. run var_dump() on that or give print_r() output on the query to see if it's returning the correct data
Ok
PHP:
<?php include './assets/header.php'; ?>
<?php include './assets/navigation.php'; ?>
<?php
define("_VALID_PHP", true);
  require_once("init.php");
 
  if (isset($_POST['doLogin']))
      : $result = $user->login($_POST['username'], $_POST['password']);
 
  /* Login Successful */
  if ($result)
    redirect_to("home.php?login");
  endif;
?>
    <div class="container-fluid">
      <div class="row-fluid">
        <div class="span3">
          <div class="well sidebar-nav">
            <ul class="nav nav-list">
              <li class="nav-header">Navigation</li>
              <li class="active"><a href="<?php echo $_config['site']['url']; ?>/index">Home</a></li>
              <?php if($user->logged_in):?>
             
              <?php else: endif;?>
              <?php if($user->is_Admin()):?>
              <li><a href="<?php echo $_config['site']['url']; ?>/admin/"></a></li>
              <?php else: endif;?>
              <li><a href="<?php echo $_config['site']['url']; ?>/users">User</a></li>
            </ul>
            </div>
                <div class="well sidebar-nav">
            <ul class="nav nav-list">
                <li class="news-header">News</li>
                <?php #echo $news['title']; ?>
               
                <h1><?php #echo $news['short']; ?></h1>
                </div>
            </div>
            </ul>
        <div class="span9">
          <div class="hero-unit">
            Login
            <form action="" method="post" />
            <p>Username: <input name="username" type="text" placeholder="Username..." class="inputbox" /></p>
            <p>Password: <input name="password" type="password" placeholder="Password..." class="inputbox" /></p>
            <input type="submit" class="button" align="left" name="doLogin" value="Login!" />
            </form>
          </div>
<?php include './assets/footer.php';?>
 
Status
Not open for further replies.

Users who are viewing this thread

Top