hallo
ich benutze ein anmeldetool für die erfassung verschiedener user.
jetzt habe ich die datenbank erweitert und entsprechende php-dateien und siehe da, das tool funktioniert nicht mehr richtig.
ich kann zwar neue user anlegen, die auch perfekt in die datenbank eingetragen werden aber der login funktioniert nicht mehr.
da ich in php nicht sonderlich bewander bin, also hier meine bitte um hilfe, da ich nicht genau erörtern kann an was es liegt. ich hoffe es findet sich einer der das ganze hier mal durchsieht.
die datenbank sieht folgendermassen aus:
ist daran etwas auzusetzen? ich schätze bzw hoffe mal nicht.
jetzt die loginseite, die bisher immer funktionierte, nur der php-teil:
als fehlermeldung kommt immer, dass ich plötzlich keine berechtigung hätte, was auf einen fehler in dieser zeile wohl aufmerksam macht:
da ich in dieser zeile nichts geändert habe, vermute ich, dass der fehler entweder in der session-datei liegt die ich include, die aber auch nicht verändert wurde, oder viel eher in der userdbclass
ich hoffe es kann mir jemand helfen, das problem zu finden. ich sitze schon seit tagen drüber und bekomme das ding nicht wieder zum laufen. ohne login bringt mir das skript net viel.
vielen dank schon mal!!!!!
ich benutze ein anmeldetool für die erfassung verschiedener user.
jetzt habe ich die datenbank erweitert und entsprechende php-dateien und siehe da, das tool funktioniert nicht mehr richtig.
ich kann zwar neue user anlegen, die auch perfekt in die datenbank eingetragen werden aber der login funktioniert nicht mehr.
da ich in php nicht sonderlich bewander bin, also hier meine bitte um hilfe, da ich nicht genau erörtern kann an was es liegt. ich hoffe es findet sich einer der das ganze hier mal durchsieht.
die datenbank sieht folgendermassen aus:
Code:
CREATE TABLE `teilnehmer` ( `id` int(4) NOT NULL auto_increment, `vname` varchar(50) collate latin1_german1_ci default NULL, `nname` varchar(50) collate latin1_german1_ci default NULL, `str` varchar(50) collate latin1_german1_ci default NULL, `hnr` varchar(4) collate latin1_german1_ci default NULL, `plz` varchar(5) collate latin1_german1_ci default NULL, `ort` varchar(50) collate latin1_german1_ci default NULL, `geb` date default '0000-00-00', `************` enum('','Herr','Frau') collate latin1_german1_ci default NULL, `tlauf` enum('Ja','Nein') collate latin1_german1_ci default NULL, `start` enum('','8','9','10','11','12','13','14','15','16','17','18') collate latin1_german1_ci default NULL, `nlauf` enum('Ja','Nein') collate latin1_german1_ci default NULL, `tshirt` enum('','S','M','L','XL','XXL') collate latin1_german1_ci default NULL, `mail` varchar(50) collate latin1_german1_ci default NULL, `user` varchar(10) collate latin1_german1_ci default NULL, `password` varchar(10) collate latin1_german1_ci default NULL, `gruppe` varchar(100) collate latin1_german1_ci default NULL, `gruppe1` varchar(100) collate latin1_german1_ci default NULL, `km` decimal(5,0) default NULL, `bem` text collate latin1_german1_ci, `rechte` tinytext collate latin1_german1_ci, PRIMARY KEY (`id`), UNIQUE KEY `username` (`user`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=18 ;
jetzt die loginseite, die bisher immer funktionierte, nur der php-teil:
PHP-Code:
<?php
// $Id: php_01_f.php 20 2005-07-25 19:05:10Z wshbg $
include ('../php/z_sessionclass.php');
$Session = new SessionClass();
include ('../php/z_globals.php');
include ('../php/z_userdbclass.php');
$message = 'Melden Sie sich an:';
$pmessage = '';
if ( ($Session->getLoginState() <= 0) && isset($_POST['submitLogin'])) {
$User = new User;
$User->setUsername ((isset($_POST['inputUsername']) ? $_POST['inputUsername'] : ''));
if (isset ($_POST['inputPassword'])) { $User->setPassword($_POST['inputPassword']); }
if ($Session->login($User->getUsername(),$User->getPassword(), DBSERVER, DBNAME, DBUSER, DBPASSWORD)){
$message = "Hallo, ".$Session->USER->getFullname();
} else {
$message = "Sie haben keine Berechtigung";
}
}
if (($Session->getLoginState() == 1) && isset($_POST['submitLogout'])) {
$message="Sie sind nun ausgeloggt. Auf Wiedersehen!, ".$Session->USER->getFullname();$Session->logout();}
if ($Session->getLoginState() == 1) {
$message = $Session->USER->getFullname().", sie sind nun eingeloggt und können ihre
persönlichen Daten ändern.";}
if (($Session->getLoginState()<=0)&& isset($_POST['forgotPassword'])){
$mail = isset($_POST['Mail']) ? $_POST['Mail']:'';
$muster = "/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)[a-zA-Z]{2,3}$/";
if ($mail != '' && preg_match($muster,$mail)) {
$abfrage = new UserDbMapper(DBSERVER,DBNAME,DBUSER,DBPASSWORD);
$user = $abfrage->checkMail($mail);
if ($user->existUsername()) {
$random = zufall();
if ($abfrage->changePassword($user->id,$random)){
$adressat = $user->getMail();
$betreff = "Laufanmeldung für Zweibrücken - eine Stadt läuft für ihre Kinder";
$nachricht = "Hallo lieber Sportfreund, ";
. . . $header = "From: [email]laufanmeldung@zweibrueckenlaeuft.de[/email]\r\n";
mail($adressat, $betreff, $nachricht, $header);
$pmessage = "Sie erhalten eine Mail";
} else {
$pmessage = "Es ist ein Fehler aufgetreten";
}
} else {
$pmessage = "Sie sind nicht registriert";
}
} else {
$pmessage = "Mailadresse ungültig?";
}
}
?>
PHP-Code:
if ($Session->login($User->getUsername(),$User->getPassword(), DBSERVER, DBNAME, DBUSER, DBPASSWORD)){
$message = "Hallo, ".$Session->USER->getFullname();
} else {
$message = "Sie haben keine Berechtigung";
ich hoffe es kann mir jemand helfen, das problem zu finden. ich sitze schon seit tagen drüber und bekomme das ding nicht wieder zum laufen. ohne login bringt mir das skript net viel.
vielen dank schon mal!!!!!
Kommentar