2009-07-08 7 views
-1

Ich habe drei Dateien: eine namens sql.php Hexe hat eine Klasse db, die ich benutze, um die Ergebnisse Operation von MySQL zu erleichtern; eine namens session.class.php, die eine Klassensitzung (extending class db) hat, die ich benutze, um meine grundlegenden Operationen als Funktionen zu machen ... wie die Funktion check_login, mit der ich überprüfe, ob der Benutzer eingeloggt ist; und eine andere namens main.class.php, die ich von einem Login-Modul in einem Forum veröffentlicht habe. Zuerst benutzte er eine andere Datei als MySQL-Wrapper namens mysql.class.php, die ich nicht mochte und ersetzte sie durch meine sql.php. Nun bekomme ich einen Fehler in meiner main.class.php-Datei wie folgt:PHP Klassen Fehler

"Warnung: Fehlendes Argument 2 für db :: db(), in C genannt: \ wamp \ www \ extlogin \ inc \ main.class.php auf Leitung 14 und in C definiert: \ wamp \ www \ extlogin \ inc \ sql.php on line

Warnung: Fehlende Argument für 3 db :: db (), aufgerufen in C: \ wamp \ www \ extlogin \ inc \ main.class.php unter Zeile 14 und definiert in C: \ wamp \ www \ extlogin \ inc \ sql.php on line

Warnung: Fehlende Argument für 4 db :: db(), in C genannt: \ wamp \ www \ extlogin \ inc \ main.class.php auf Leitung 14 und definiert in C: \ wamp \ www \ extlogin \ inc \ sql.php on line "

Meine main.class.php Datei sieht wie folgt aus:

<?php 
    require_once("sql.php"); 
    require_once("session.class.php"); 
    class main extends db { 
     public function __construct() { 
      header('Content-Type: text/html; charset=iso-8859-1'); 
      session_start();    
      if (class_exists('db')) { 

      } else { 
       die("Database class does not exist!"); 
      } 
      if (class_exists('session')) { 
       $this->session = new session($this); 
      } else { 
       die("Session class does not exist!"); 
      } 

     } 
    } 
?> 

Wo Linie 14 in meiner main.class.php Datei hat das: $this->session = new session($this); und Linie 33 in meiner sql.php Datei die Funktion db für die Verbindung haben wie folgt definiert:

function db($dbuser, $dbpassword, $dbname, $dbhost) 

Kann jemand sagen, meint, wie dieser Fehler zu beheben? Ich könnte Ihnen mehr Details geben, wenn Sie sie brauchen.

Danke.

Antwort

0

Sind Sie sicher, dass Sie die Klasse 'db' erweitern müssen?

Sehen Sie sich session.class.php im Konstruktor an. Es scheint, dass versucht wird, eine Instanz einer 'db'-Klasse zu erstellen, die einige Eingabeparameter benötigt. Sie müssen möglicherweise einige zusätzliche Parameter an die Sitzungsklasse übergeben oder vielleicht zuvor eine Datenbankinstanz initialisiert haben.

0

In Zeile 33 initialisieren Sie die Klasse db, ohne die letzten drei Parameter zu erfüllen. Der Fehler ist ziemlich einfach ...

0

Der Fehler ist in sql.php. Überprüfen Sie diese Datei, db: db() scheint einige Parameter zu benötigen.

Als Best Practice:

  • Sie sollten nicht die Fehler in der generierten HTML-Datei anzuzeigen
  • Satz Fehlerstufe auf Warnung oder unteren
  • die Protokolldatei auf Fehler überwachen