Hi
ich hab ein Problem un keinew blassehn Schimmer warum.
Ich habe ein Anmeldeformular, das schicke ich an news.php:
und was ich mit der klasse auth auswerten will(hab ich in news.php eingebunden) auth:
doch wenn ich mich einloggen will wird immer '?fehler=notset' an die URL angehängt(was bedeuten soll das die $_POST variablen, die ich in der Funktion login() in auth, nicht gesetzt sind. Ich weiß nicht warum, vlt hab ich ja nur was übersehn?!
Bitte hlft mir
mfg
ich hab ein Problem un keinew blassehn Schimmer warum.
Ich habe ein Anmeldeformular, das schicke ich an news.php:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>News</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <link rel="stylesheet" type="text/css" href="../schule/style.css"> <body> <?php //log einbinden require_once 'auth.php'; //log instanziieren $auth = new auth(); //Abmelden if (isset($_GET['to']) && $_GET['to'] == 'logout') { $auth->logout(); } ?> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td background="../schule/spacer.png" width="100"></td> <td height="30" background="../schule/news_tst.png" width="200"><div align="center">News</div></td> <td height="30" background="../schule/oben_pers_daten.png" width="200"><div align="center">Pers. Daten</div></td> <td background="../schule/spacer.png" width="100">Logout</td> </tr> <tr> <td colspan="4" width="400"></td> </tr> </table> <div class="news"> <u>News</u><a name="top"></a> </div> </body> </html>
Code:
<?php class auth { public function __construct() { $this->login(); } private function login() { //preft ob schon eine session vorhanden ist if (isset($_SESSION['login_hash'])) { $this->confirmauth(); return; } if (!isset($_POST['nick']) || !isset($_POST['pw'])) { $this->redirected('?Notset'); } //variablen fuer die Datenbank abfrage maskieren $nick= ($_POST['nick']); $pw = md5($_POST['pw']); $pw = ($pw); //DB Daten includen include ('connect.php'); //DB Abfrage ob nuer ein user mit dieser pw/nick kombination vorhanden ist echo $sql = "SELECT * FROM benutzer WHERE nick = '$nick' AND pw = '$pw'"; $result = mysql_query($sql); $zeilen = mysql_num_rows($result); //zuruecksetzen falls nicht exakt ein Eintrag vorhanden ist if ($zeilen != 1) { $this->redirected('?DBProb'); } //sonst session setzen else { $this->storeauth(); } } //setzt session variablen public function storeauth() { session_start(); $_SESSION['nick'] = $nick; $_SESSION['pw'] = $pw; $hashkey = md5($this->hashkey . $nick . $password); $_SESSION['login_hash'] = $hashkey; header( 'Location: news.php'); } private function get($name) { if (isset($_SESSION[$name])) { return $_SESSION[$name]; } else { return false; } } //ueberprueft einen besteheden login private function confirmauth() { $nick = $this->get('nick'); $pw = $this->get('pw'); $hashkey = $this->get('login_hash'); if (md5($this->hashkey . $nick . $password) != $hashkey) { $this->logout(); } } public function logout() { unset($_SESSION['pw']); unset($_SESSION['login_hash']); $_SESSION['loggedIn'] = false; $this->redirected(); } private function redirected($fehler) { header('Location: login2.php' . $fehler); exit (); } } ?>
Bitte hlft mir
mfg
Kommentar