2009-07-08 4 views
-1

J'ai trois fichiers: un appelé sql.php witch a une classe db que j'utilise pour faciliter l'opération get results de MySQL; un appelé session.class.php qui a une session de classe (extension de la classe db) que j'utilise pour faire mes opérations de base en tant que fonctions ... comme la fonction check_login que j'utilise pour vérifier si l'utilisateur est connecté; et un autre appelé main.class.php que j'ai depuis un module de connexion posté sur un forum. Au début, il a utilisé un autre fichier comme MySQL appelé mysql.class.php que je n'ai pas aimé et l'a remplacé par mon sql.php. Maintenant, je reçois une erreur dans mon dossier de main.class.php comme ceci:PHP classes erreur

"Attention: Missing argument 2 pour db :: db(), appelé dans C: \ wamp \ www \ extlogin \ inc \ main.class.php sur ligne 14 et définie dans C: \ wamp \ www \ extlogin \ inc \ sql.php en ligne

Attention: Missing argument pour 3 db :: db (), appelé dans C: \ wamp \ www \ extlogin \ inc \ main.class.php sur ligne 14 et défini dans C: \ wamp \ www \ extlogin \ inc \ sql.php sur la ligne

Attention: Missing argument pour 4 db :: db(), appelé dans C: \ wamp \ www \ extlogin \ inc \ main.class.php sur ligne 14 et définie dans C: \ wamp \ www \ extlogin \ inc \ sql.php en ligne "

mon fichier main.class.php ressemble à ceci:

<?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!"); 
      } 

     } 
    } 
?> 

Où la ligne 14 dans mon fichier main.class.php a ceci: $this->session = new session($this); et la ligne 33 dans mon fichier sql.php a la fonction db pour la connexion définie comme ceci:

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

Quelqu'un peut-il dire à ma façon de corriger cette erreur? Je pourrais vous donner plus de détails si vous en avez besoin.

Merci.

Répondre

0

Êtes-vous sûr de devoir étendre la classe 'db'?

Jetez un coup d'œil à session.class.php dans le constructeur. Il semble qu'il essaie de créer une instance d'une classe 'db', ce qui nécessite des paramètres d'entrée. Vous devrez peut-être passer des paramètres supplémentaires à la classe de session ou avoir préalablement une instance db initialisée.

0

Sur la ligne 33, vous initialisez la classe db sans satisfaire ses trois derniers paramètres. L'erreur est assez simple ...

0

L'erreur est dans sql.php. Vérifiez ce fichier, db: db() semble avoir besoin de quelques paramètres.

Comme les meilleures pratiques:

  • vous ne devriez pas afficher les erreurs dans le fichier html généré
  • jeu de niveau d'erreur d'avertissement, ou moins
  • surveiller le fichier journal des erreurs