Jump to content

Impossible error !!?


rofl90

Recommended Posts

This is a lot of code, but most of it might appear to be junky, I really do appreciate any help, been stuck on this for hours here it is:

errors:

 

Notice: Undefined variable: db in /home/fhlinux160/p/x/user/htdocs/backend/classes/user.php on line 38

 

Fatal error: Call to a member function query() on a non-object in /home/fhlinux160/p/x/user/htdocs/backend/classes/user.php on line 38

 

Code:

 

config.php:

 

<?php
/*
* Config
*/
$root = "/home/fhlinux160/p/x/user/htdocs/backend/";
$url = "http://x.com";

$classes = $root . "classes/";

/* Include Database.php */

require_once $classes . "database.php";

/* Define Database Settings */

$database ["server"] = "x";
$database ["username"] = "x";
$database ["password"] = "x";
$database ["database"] = "x";

/* Connect */

$db->connect ( $database ["server"], $database ["username"], $database ["password"], $database ["database"] );

/* More includes */

require_once $classes . "user.php";
require_once $classes . "settings.php";

/* Define UserID */
$myuid = session_id();
?>

 

User.php:

 

<?php

class user {

function __construct() {

}

public function user_type($page) {
global $logged_user;
$user = $logged_user;
$level = $db->query("SELECT * FROM users WHERE user='$user'");
$level_a = $db->fetch_array($level);
$final_level = $level_a['usergroup'];
$check_level = $db->query("SELECT * FROM userstructure WHERE name='$final_level'");
$check_level_a = $db->fetch_array($check_level);
if ( $check_level_a[$page] == '1' ) {
	return "1";
} else {
	return "0";
}
}

public function getuid() {
$session = session_id(); 
$get_user_id = $db->query("SELECT * FROM session WHERE session_id='$session'");
$fetch_user_id = $db->fetch_array($get_user_id); 
	$user_id_tag = $fetch_user_id['userid']; 
		$get_user_name = $db->query("SELECT * FROM users WHERE id='$user_id_tag'");
		$fetch_user_name = $db->fetch_array($get_user_name);
			$logged_user = $fetch_user_name["user"];
			return $logged_user;
}


public function check_login() {
    $id = session_id ();
    $start = $db->query("SELECT * FROM session WHERE session_id='$id'" );
    $start_n = $db->num_rows( $start );
    if ($start_n == "0") {
        return "0";
    } else {
        $get_session_a = $db->fetch_array( $start );
        $user_id = $get_session_a ["userid"];
        $check_user = $db->query("SELECT * FROM users WHERE id='$user_id'" );
        $c_u_n = $db->num_rows( $check_user );
        if ($c_u_n == "0") {
            return "0";
        } else {
		$timeout_query = $db->query("SELECT * FROM settings");
		$timeout_array = $db->fetch_array($timeout_query);
            $timeout = $timeout_array['timeout'];
            $now = time ();
            $last = $get_session_a ["date"];
            $check = $now - $last;
            if ($check > $timeout) {
                return "0";
            } else {
                    $db->query("UPDATE session SET date='$now' WHERE session_id='$id'" );
                    return "1";
                }
            }
        }
    }


	public function __destruct() {

}

}

if (! isset ( $user )) {
$user = new user ( );
}
?>

 

database.php:

 

<?php
/**
* Database core.
*/

class database {

private $server;
private $username;
private $password;
private $database;

/**
 * Construct
 */
function __construct() {

}

/**
 * Check, and begin connection.
 */

public function connect($server, $username, $password, $database) {
	if ($server == NULL || $username == NULL || $database == NULL) {
		//TODO: error.
	} else {
		$this->server = $server;
		$this->username = $username;
		$this->password = $password;
		$this->database = $database;
		$this->database_connect ();
	}
}

/**
 * Database error.
 */

public function error($text) {
	echo "There has been an error.  Please try again later. <br /><br /> " . $text;
	exit ();
}

/**
 * Begin connection.
 */

private function database_connect() {
	$conn = @mysql_connect ( $this->server, $this->username, $this->password );
	if ($conn == false) {
		$this->error ( mysql_error () );
	} else {
		$this->select_db ();
	}
}

/**
 * Select database.
 */

private function select_db() {
	$select_db = @mysql_select_db ( $this->database );
	if ($select_db == false) {
		$this->error ( mysql_error () );
	}
}

/**
 * Database query
 */

public function query($query_text) {
	$query = mysql_query ( $query_text ) or die ( mysql_error () );
	return $query;
}

/**
 * Database fetch array
 */

public function fetch_array($query_object) {
	$fetch = mysql_fetch_array ( $query_object );
	return $fetch;
}

/**
 * Database number rows
 */

public function num_rows($query_object) {
	$num = mysql_num_rows ( $query_object );
	return $num;
}

/**
 * Destruct
 */
function __destruct() {
	unset ( $this->server );
	unset ( $this->username );
	unset ( $this->password );
	unset ( $this->database );
	mysql_close ();
}
}

if (! isset ( $db )) {
$db = new database ( );
}

?>

 

index.php: (errors will be at top, as its erroring the config part.

 

toponly:

<?php 
session_start ();
ini_set('display_errors', 1);
error_reporting(E_ALL);
include "config.php";
if($user->check_login() == "1") {
    header("Location: index2.php");
    exit();
}
?>

Link to comment
Share on other sites

you have a function using $db, but $db has not been defined inside that function.

<?php
public function check_login() {
    $id = session_id ();
    $start = $db->query("SELECT * FROM session WHERE session_id='$id'" );

    ...
}

I suggest you read up on "variable scope" in the PHP manual

Link to comment
Share on other sites

try

<?php 
session_start ();
ini_set('display_errors', 1);
error_reporting(E_ALL);
include "config.php";
if($user->check_login($db) == "1") {                              // pass db to function
    header("Location: index2.php");
    exit();
}
?>

 

and

<?php
public function check_login($db) {
    $id = session_id ();
    $start = $db->query("SELECT * FROM session WHERE session_id='$id'" );

    ...
}

Link to comment
Share on other sites

I tried the global it worked to an extent it's now bombarded me with errors:

 

Warning: Missing argument 1 for user::check_login(), called in /home/fhlinux160/p/prowebdesigns.co.uk/user/htdocs/backend/index.php on line 64 and defined in /home/fhlinux160/p/prowebdesigns.co.uk/user/htdocs/backend/classes/user.php on line 40

 

Notice: Undefined variable: db in /home/fhlinux160/p/prowebdesigns.co.uk/user/htdocs/backend/classes/user.php on line 42

 

Fatal error: Call to a member function query() on a non-object in /home/fhlinux160/p/prowebdesigns.co.uk/user/htdocs/backend/classes/user.php on line 42

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.