Nicht mehr ganz neu hier
Hallo,
Ich bins mal wieder.Ich habe mich mal daran versucht ein Loginscript mit Klassen zu schreiben nun habe ich ein problem an der Stelle wo ich die Datenbank abfrage und das Ergebniss in einer Array speicher.
Entweder zeigt er mir auf dem bildschirm garnixs an oder "Call to undefined method mysqli::fetch_array() in "
Hier mal die Codeauschnitte
Die main
Datenbank bzw connect Klasse:
Und die Login Klasse
Hoffe ihr könnt mir helfen.
Danke schonmal im vorraus für die Hilfe.
Ich bins mal wieder.Ich habe mich mal daran versucht ein Loginscript mit Klassen zu schreiben nun habe ich ein problem an der Stelle wo ich die Datenbank abfrage und das Ergebniss in einer Array speicher.
Entweder zeigt er mir auf dem bildschirm garnixs an oder "Call to undefined method mysqli::fetch_array() in "
Hier mal die Codeauschnitte
Die main
PHP:
$dboptions = array(
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'db' => 'dbname');
error_reporting(E_ALL ^ E_NOTICE);
require 'includes/classes/connect.class.php';
require 'includes/classes/login.class.php';
session_start();
db::init($dboptions);
$response = array();
$action = $_GET['action'];
switch($action)
{
case 'login':
$response = LogIn::login($_POS['name'], $_POST['password']);
break;
case 'logout':
break;
case 'register':
break;
default: 'Diese aktion exestiert nicht';
}
PHP:
private static $instance;
public $MySQLi;
public function __construct(array $dboptions)
{
$this->MySQLi = @ new mysqli($dboptions['host'],
$dboptions['user'],
$dboptions['pass'],
$dboptions['db']);
if(mysqli_connect_errno())
{
throw new Exception("Database err");
}
$this->MySQLi->set_charset("utf8");
}
public static function init(array $dboptions){
if(self::$instance instanceof self){
return false;
}
self::$instance = new self($dboptions);
}
public static function getMySQLiObject(){
return self::$instance->MySQLi;
}
public static function query($q){
return self::$instance->MySQLi->query($q);
}
public static function esc($str){
return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
}
public static function getMySQLiArray($res)
{
return self::$instance->MySQLi->fetch_array();
}
PHP:
public function __construct()
{
}
public static function login($name, $password)//Übergeben des Passwortes und des Usernamens
{
if(empty($name) and empty($password))
{
echo '<div id="error">Bitte füllen sie alle Felder aus<br />
<a href="index.php">Zurück zur Startseite</a></div>';
return false;
}
else
{
$sql = "SELECT username, password FROM user_profile WHERE username='".db::esc($name)."' LIMIT 1";
$res = db::query($sql);
$row = db::getMySQLiArray($res);
if($row['username'] == $name and $row['password'] == md5($password))
{
$user = new LogIn();
$_SESSION['user'] = $name;
echo '<div class="weiterleitung">Login erfolgreich!Sollte die Weiterleitung nicht funktionieren, klicke bitte den folgen den link<br /><a href="index.php">Start-Seite</a></div>';
header("Location: ../../index.php");
}
}
}
Hoffe ihr könnt mir helfen.
Danke schonmal im vorraus für die Hilfe.