Problem mit Loginscript
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adler
code
datei
fehler
fehlermeldung
folgendes code
frage
frankfurt
header
http
index
login
neuling
output
paar
reinster unsinn
tip
wahre lawine
warnung
wirkung
-
Hallo !
Ich habe ein Problem mit meinem Loginscript. Auf der linken Seite im Menü sind ganz viele Fehler.
Ich habe schon versucht, sie zu beheben, aber ich weiß nicht was ich ändern muss.
Die Seite: http://www.adler-frankfurt.de/index.php
global.php
<? require("/home/webpages/lima-city/davy/html/adler-frankfurt/login/lib/config.inc.php"); require("/home/webpages/lima-city/davy/html/adler-frankfurt/login/lib/db.class.php"); require("/home/webpages/lima-city/davy/html/adler-frankfurt/login/lib/um.class.php"); $db = new db($db['location'], $db['username'], $db['passwort'], $db['database']); $um = new usermanagment(); /** User eingeloggt **/ $checklogin = $um->check_login(); $userdata = $um->getuserdata(); if(!$checklogin && !$guest) { header("LOCATION: /home/webpages/lima-city/davy/html/adler-frankfurt/index.php"); } ?>
login.php
<? $guest = true; require("/home/webpages/lima-city/davy/html/adler-frankfurt/login/global.php"); if($_GET['do'] == "login") { $um->do_login($_POST['username'], $_POST['passwort']); header("LOCATION: http://www.adler-frankfurt.de/login/index.php"); } elseif($_GET['do'] == "logout") { $um->reset(); header("LOCATION: http://www.adler-frankfurt.de/index.php"); } ?>
um.class:
<? class usermanagment { function usermanagment() { global $db; $this->userdata = array(); $this->db = $db; } function check_login() { $username = $_COOKIE['username']; $passwort = $_COOKIE['passwort']; $hash = $_COOKIE['hash']; $r = $this->db->Query("SELECT * FROM userdaten WHERE username = '".$username."' AND passwort = '".$passwort."' AND hashwert = '".$hash."'"); if($this->db->rows($r) == 1) { $this->userdata = $this->db->Fetch_Array($r); return true; } else { $this->reset(); return false; } } function getuserdata() { if($this->check_login()) { //User besitzt eine gültige Login-Session return $this->userdata; } else { //User besitzt keine gültige Login-Session return false; } } function is_admin() { $userdata = $this->getuserdata(); if($userdata['admin'] == "1") return true; else return false; } function do_login($username, $passwort) { $r = $this->db->Query("SELECT * FROM userdaten WHERE username = '".$username."' AND passwort = '".md5($passwort)."'") or die(mysql_error()); if($this->db->rows($r) == 1) { //User ist eingeloggt $r = $this->db->Fetch_Array($r); $hash = md5(sha1($r['username']).sha1($r['passwort']).sha1($r['userid'])); $this->db->Query("UPDATE userdaten SET hashwert = '".$hash."' WHERE userid = '".$r['userid']."'"); //Cookies setzen $time = time() + ( 3600 * 24 * 30 ); setcookie("username", $r['username'], $time, "/"); setcookie("passwort", $r['passwort'], $time, "/"); setcookie("hash", $hash, $time, "/"); return true; } else return false; } function reset() { //User ausloggen da Passwort / HASH im COOKIE fehlerhaft ist! $time = -1; setcookie("username", "", $time, "/"); setcookie("passwort", "", $time, "/"); setcookie("hash", "", $time, "/"); } } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Google doch einfach mal die Fehler, das hilft ungemein.
Aber nun gut ein paar tips kann ich dir ja geben:
Der Fehler mit den Headers already sent by ist recht einfach zu erklären.
header("LOCATION: /home/webpages/lima-city/davy/html/adler-frankfurt/index.php"); }
Das darf man nicht. Vor einem solchen header darf kein bisschen html stehen. Da du diese Sachen jedoch mit divs integrierst wird das wohl kaum möglich sein. Als html gilt übrigens auch schon ein echo.
Also schreib das mit den headern am besten um. Altenativ wäre dazu folgendes:
echo"<meta http-equiv='refresh' content='0;URL=Gewünschte Seite.php'>";
Aber ansonsten hilft dir da Google, denn diese Fragen haben schon so viele PHP-Neulinge gestellt.
Beitrag zuletzt geändert: 4.4.2010 10:01:48 von no-smoke -
no-smoke schrieb:
Google doch einfach mal die Fehler, das hilft ungemein.
Aber nun gut ein paar tips kann ich dir ja geben:
Der Fehler mit den Headers already sent by ist recht einfach zu erklären.
header("LOCATION: /home/webpages/lima-city/davy/html/adler-frankfurt/index.php"); }
Das darf man nicht. Vor einem solchen header darf kein bisschen html stehen. Da du diese Sachen jedoch mit divs integrierst wird das wohl kaum möglich sein. Als html gilt übrigens auch schon ein echo.
Also schreib das mit den headern am besten um. Altenativ wäre dazu folgendes:
echo"<meta http-equiv='refresh' content='0;URL=Gewünschte Seite.php'>";
Aber ansonsten hilft dir da Google, denn diese Fragen haben schon so viele PHP-Neulinge gestellt.
Ich hab es geändert, allerdings kommt der Fehler immer noch -
Hast du es wirklich in allen Dateien geändert, es wäre dann hilfreich wenn du sie noch mal posten uploaden würdest.
-
ungemein hilfreich ein refresh ;o) jetzt hört die seite nich mehr auf neu zu laden, allerdings mit der selben wirkung!
eine der lösungen ist (weil die warnung ja lautet):
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/davy/html/adler-frankfurt/index.php:7) in /home/webpages/lima-city/davy/html/adler-frankfurt/login/lib/um.class.php on line 68
in der datei 'index.php' gleich am anfang fügst 'ob_start ();' in eine zeil ein. das mit dem header umschreiben musst du rückgängig machen. reinster unsinn.
decto on line 69
decto on line 70
==== edit:
die seite verursacht eine wahre lawine an css-fehlermeldungen. fällt nicht sehr positiv auf. verstopft jeden browser.
auch der titel ist etwas unglücklich gewählt.
Beitrag zuletzt geändert: 4.4.2010 12:34:48 von czibere -
czibere schrieb:
ungemein hilfreich ein refresh ;o) jetzt hört die seite nich mehr auf neu zu laden, allerdings mit der selben wirkung!
eine der lösungen ist (weil die warnung ja lautet):
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/davy/html/adler-frankfurt/index.php:7) in /home/webpages/lima-city/davy/html/adler-frankfurt/login/lib/um.class.php on line 68
in der datei 'index.php' gleich am anfang fügst 'ob_start ();' in eine zeil ein. das mit dem header umschreiben musst du rückgängig machen. reinster unsinn.
decto on line 69
decto on line 70
==== edit:
die seite verursacht eine wahre lawine an css-fehlermeldungen. fällt nicht sehr positiv auf. verstopft jeden browser.
auch der titel ist etwas unglücklich gewählt.
OK.
Refresh ist weg. ob_start (); ist drin.
Jetzt sind die Fehlermeldungen weg.
Danke ! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage