[mySQL/PHP] Keine Verbindung
-
Wenn ich über PHP eine Verbindung mit meiner Datenbank herstellen will geht das nicht :(.
Also so sieht der Code aus:
// // DATEI mySQL.php // <?php class mySQL { var $dbCON; var $dbDATABASE = ""; var $dbPASSWORT = ""; var $dbTABLE = ""; var $dbURI = ""; var $dbUSERNAME = ""; var $lasterror = "Kein Datenbankfehler."; function connect () { if ( ! ( $this->isConnected () ) ) { $this->dbCON = mysql_connect ( $this->dbURI , $this->dbUSERNAME , $this->dbPASSWORT ); $result = mysql_select_db ( $this->dbDATABASE , $this->dbCON ); if ( ! $result ) { $this->lasterror = "Die Methode connect() der Klasse mySQL konnte nicht zur Datenbank {$dbDATABASE} wechseln."; } return $result; } else { return true; } } function isConnected () { if ( is_resource ( $this->dbCON ) ) { return true; } else { return false; } } function query ( $querystr ) { $result = false; if ( ! $this->isConnected () ) { $this->connect (); } if ( $this->isConnected () ) { $result = mysql_query ( $querystr , $this->dbCON ); } return $result; } function fehler () { return $this->lasterror; } function disconnect () { mysql_close ( $this->dbCON ); } } ?> // // DATEI mySQLuser.php // <?php include ( "./mySQL.php" ); class base_user extends mySQL { var $user_id = 0; var $user_name = ""; var $user_pass = ""; var $user_email = ""; var $user_hp = ""; var $user_startseite = 0; var $user_loaded = false; function base_simpleuser ( $login = false , $username = "" , $password = "" ) { if ( $login ) { $this->login ( $username , $password ); } } function login ( $username , $passwort ) { $this->user_loaded = false; if ( preg_match ( "/^[a-zA-Z0-9]{1-20}$/" , $name ) ) { $querystr = "SELECT * FROM '{$this->dbTABLE}' WHERE Username = '{$username}' AND Passwort = '{$passwort}'"; if ( $result = $this->query ( $querystr ) ) { if ( $row = mysql_fetch_assoc ( $result ) ) { $this->user_id = $row["ID"]; $this->user_name = $row["Username"]; $this->user_pass = $row["Passwort"]; $this->user_email = $row["E-Mail"]; $this->user_hp = $row["Homepage"]; $this->user_startseite = $row["Startseite"]; $this->user_loaded = true; } } else { $this->lasterror = "Die Methode login() der Klasse base_user hat keinen passenden Datensatz gefunden."; } } else { $this->lasterror = "Die Methode login() der Klasse base_user hat ihren Namen als ungültig identifiziert."; } return $this->user_loaded; } } ?> // // DATEI user.php // <?php include ( "./mySQLuser.php" ); class user extends base_user { var $dbDATABASE = "usr_web24_1"; var $dbPASSWORT = "SecretAberRichtig"; var $dbTABLE = "users"; var $dbURI = "localhost"; var $dbUSERNAME = "web24"; } ?> // // Hier soll die Verbindung aufgebaut werden // <?php /* user_login.php Diese Datei wird aufgerufen wenn der User sich über das Interface einloggt. Sollte der Login erfolgreich sein wird er weiter zur Startseite geleitet, falls der Loginversuch misslang wird er zur PW-Recovery-Seite weitergeleitet. Last Time Modified: 1. Juli 2003 First Time Modified: 1. Juli 2003 Author: SideWinder */ include ( "./user.php" ); session_start (); ?> <html> <head> <title>.: SideWinders Home :.</title> <meta http-equiv="content-type" content="text/html" /> <meta http-equiv="content-style-type" content="text/css" /> <meta name="author" content="SideWinder" /> <meta name="description" content="Private Website von SideWinder - Programmieren, Counterstrike und Treffpunkt für die 1EHD (2DHD)" /> <meta name="keywords" content="SideWinder, Programmieren, Programming, C, C++, Pascal, Turbo Pascal, PHP, Counterstrike, Counter-Strike, CS, cstrike, Configs, HTL, Leonding, 1EHD, 2DHD" /> <meta name="robots" content="index,nofollow" /> </head> <body> <?php if ( $curUser->login ( $username , $passwort ) ) { ?> Hallo <?php echo $curUser->user_name; ?><br /> Sie wurden eingeloggt und werden zurück zur Hauptseite weitergeleitet. <?php } else { ?> Die eingegebene Username/Passwort-Kombination war falsch!<br /> <?php echo $curUser->fehler (); } ?> </body> </html>
Die letzte Datei user_login.php wird vom Formular aufgerufen. curUser ist eine Variable vom Typ user und wird auf der Startseite zuerst erstellt und dann registriert.
Was ist daran falsch?
MfG SideWinder
[ Dieser Beitrag wurde am 02.07.2003 um 14:37 Uhr von SideWinder editiert. ]
-
Außerdem meint er, dass $curUser->fehler() undefiniert ist
MfG SideWinder
-
Wie wirkt sich denn der Fehler aus?
Woher kommen die Variablen $username und $passwort?[edit]hatte Stuss geschrieben[/edit]
[ Dieser Beitrag wurde am 02.07.2003 um 18:42 Uhr von flenders editiert. ]
-
Also $username und $passwort (ja wirklich mit 't') kommen aus der login.php die wiederrum in die index.php eingebunden ist. Dort ist ein Formular das die Daten per POST überträgt.
Variablen werden automatisch erstellt (laut phpinfo()).
Der Fehler wirkt sich folgendermaßen aus:
Ich gebe den richtigen Benutzernamen und das richtige Passwort ein drücke auf Login und bekomme (innerhalb einer sehr geringen Zeit - da kann man kaum eine DB öffnen und abfragen...) folgende Ausgabe:
Die eingegebene Username/Passwort-Kombination war falsch! Fatal error: Call to undefined function: fehler() in /var/www/web24/html/new/user_login.php on line 58
Also erstens behauptet er das die Kombination falsch ist -> das ist sie nicht also passt mit der DB-Abfrage etwas nicht. Zweitens will er mir weißmachen, dass ich fehler() nicht definiert habe obwohl das sehrwohl so ist!
Komischerweise findet er nur fehler() nicht. query() oder is_Connected() findet er ohne Probleme.
MfG SideWinder
-
Folgende Analyse:
echo get_class ( $curUser ); echo "<br>"; echo get_parent_class ( $curUser ); echo "<br>"; echo get_parent_class ( get_parent_class ( $curUser ) ); echo "<br>"; foreach ( get_class_methods ( get_parent_class ( get_parent_class ( $curUser ) ) ) as $method ) { echo $method; }
hat ergeben, dass weder fehler noch disconnect Methoden sind. curUser aber ein Objekt vom Typ user ist und von base_user und mysql erbt.
MfG SideWinder
-
Problem gelöst. Volltrottel gefunden -.-
Ich habe irgendwie die alten Dateien im neuen Verzeichnis und die neuen im alten abgespeichert . Nun hat der korrekterweise natürlich die alten aufgerufen -> welche diese Funktionialität nicht hatten.
Sry an alle die sich mit dem Problem beschäftigt haben!
Edit: Hab so auch noch ein paar Fehler gefunden - kümmert euch einfach nicht mehr drum
MfG SideWinder
Edit: Die Connection zur Datenbank läuft nun auch und er lädt die Session und meine Daten - danke an alle hier die mich bis hierher gebracht haben^^
[ Dieser Beitrag wurde am 03.07.2003 um 10:51 Uhr von SideWinder editiert. ]
[ Dieser Beitrag wurde am 03.07.2003 um 11:04 Uhr von SideWinder editiert. ]