Antworten auf deine Fragen:
Neues Thema erstellen

OOP hilfe bei Loginscript mit klassen (PHP)

shadownight

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
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';
    }
Datenbank bzw connect Klasse:
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();
    }
Und die Login Klasse
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&uuml;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.
 

Duddle

Posting-Frequenz: 14µHz

AW: OOP hilfe bei Loginscript mit klassen (PHP)

fetch_array() ist eine Methode der mysqli_result-Klasse. Du rufst sie auf einem mysqli-Objekt auf, ergo wird sie nicht gefunden. Schau dir die Beispiele im verlinkten Handbuch an, falls du nicht sofort verstehst was ich meine.


Duddle
 

shadownight

Nicht mehr ganz neu hier

AW: OOP hilfe bei Loginscript mit klassen (PHP)

Danke erstmal für deine Antwort
So jetzt habe ich diesen Teil so geändert
PHP:
   public static function getMySQLiArray($res)
    {
        return $res->fetch_array();
    }
Und jetzt zeigt er mir garnixs mehr an.In meinem Loginscript Ohne Klassen funtzt das habe ich aber auch so gemacht wie in der Documentattion.
Und wenn ich das so mache zeigt er mir auch nixs an.
PHP:
            $sql = "SELECT username, password FROM user_profile WHERE username='".$name."' LIMIT 1";
            $res = db::query($sql);
            $row = $res->fetch_array();
</span></span>
 

shadownight

Nicht mehr ganz neu hier

AW: OOP hilfe bei Loginscript mit klassen (PHP)

Hatt sich erledigt habe vergessen eine fehlermeldung einzubauen die bescheid sagt wenn der username inkorrekt ist -.- dann kann das ja auch nich funktionieren wenn der kein ergebniss bekommt xD.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben