guten abend zusammen...
ich hab ein loginsystem programmiert(Quelltext folgt unten) das noch nicht so ganz das tut was ich gern hätte...
man kann sich ein und aus loggen, registrieren usw.
nur wenn ich mich z.b. auf der startseite einlogge und dann z.b. auf den link scripts klicke werd ich "automatisch" wieder ausgeloggt...
der button logout verschwindet und das anmeldefenster erscheint wieder...
das kommische an der sache ist das in der datenbank die session trotzdem erhalten bleibt...
danke schon mal für eure hilfe...
gruß sascha
PS: verbesserungsvorschläge (sicherheit usw.) nehme ich gerne an
die index.php
PHP-Code:
<?
//Startet die Session
session_start();
if (isset($_GET["seite"])) {
$seite = $_GET["seite"];
} else {
$seite = "home";
}
?>
<html>
<head>
<title>** Sascha Wetzel **</title>
<link href="main.css" rel="stylesheet" type="text/css">
</head>
<body onload="">
<div id="seite">
<div id="banner">
<div id="bannerinline">Webdesign</div>
</div>
<div id="div">
<div id="navi">
<div id="link">
<a href="?seite=home">Home</a>
<br>
<a href="?seite=ueber_mich">Über mich</a>
<br>
<a href="?seite=projekte">Projekte</a>
<br>
<a href="?seite=scripts">Scripts</a>
<br>
<a href="?seite=kontakt">Kontakt</a>
<br>
<a href="?seite=impressum">Impressum</a>
</div>
<div id="news">
<div id="newsinline">
News:<br>
<marquee>
Hier kommt nun ein Text!!!
</marquee>
</div>
</div>
<div id="login">
<div id="logininput">
<?
include "module/login.php";
echo $l;
?>
</div>
</div>
</div>
<div id="inhalt">
<div id="inhalt_2">
<?
include "module/".$seite.".php";
?>
</div>
</div>
</div>
<div id="copy">
Style © by Sascha Wetzel
</div>
</div>
</body>
</html>
die login.php
PHP-Code:
<?
//Läd die Datei basicFunction und verbindet zur Datenbank
include "incl/inc/basicFunction.php";
dbconnect();
if (isset($_POST["user"]) && isset($_POST["pass"])) {
//Übergibt Daten aus dem Formular und verschlüsselt das Passwort MD5
$benutzername = $_POST["user"];
$passwort_uv = $_POST["pass"];
$passwort_v = md5($passwort_uv);
//Lade in die $query alle Daten aus t_users und
$query = "SELECT COUNT(*) as cnt from t_users where username='$benutzername' and passwort='$passwort_v' LIMIT 1";
$result = mysql_query($query);
//Erstellt aus $relult ein assozives Array und läd es in $cnt
$cnt = mysql_fetch_assoc($result);
$cnt = $cnt['cnt'];
//Wenn $cnt gleich 1 ist soll er dem Login zustimmen und einloggen
if ($cnt == 1) {
eingeloggt($benutzername);
$h = username();
$l = "<div id=\"logout\"><a href=\"?seite=logout\">Logout</a></div>";
//Wenn $cnt nicht 1 ist kommt eine Fehlermeldung und der Loginbereich wird nochmals angezeigt
} else {
$e = "<span style=\"color: red;\">Sie haben einen falschen Benutzernamen oder ein falsches Passwort eingegeben.<br></span>";
echo formular();
}
//Gibt den Loginbereich aus basicFunction aus
} else {
echo formular();
}
?>
die basicFuntion.php
PHP-Code:
<?
//Datenbankverbingung
function dbconnect()
{
$server = "localhost";
$user = "...";
$password = "...";
$sDatabase = "...";
$con = mysql_connect($server, $user, $password) or die(mysql_error());
mysql_select_db($sDatabase, $con) or die(mysql_error());
}
//Frägt ab ob man Eingeloggt ist
function gateKeeper($session)
{
$query = "SELECT * from t_users where session = '$session' LIMIT 1";
$result = mysql_query($query);
$RowCnt = mysql_num_rows($result);
if ($RowCnt == 1) {
return true;
echo "<div id=\"logout\"><a href=\"?seite=logout\">Logout</a></div>";
} else {
return false;
}
}
//Setzt die Session zurück
function logout()
{
$query = "UPDATE t_users SET session = '' where ID = '".getUserID."' ";
mysql_query($query);
}
//Erzeugt eine Session
function eingeloggt($benutzername)
{
$sql="UPDATE t_users SET session='".session_id()."' where username='".$benutzername."'";
mysql_query($sql);
}
//Sucht die Anrede und den Username in der Datenbank
function username()
{
$query = "SELECT * from t_users where session = '".session_id()."' LIMIT 1";
$result = mysql_query($query);
$user = mysql_fetch_assoc($result);
return $user['anrede'] . ' ' . $user['nachname'];
}
//Gibt das Formular zum Einlogen aus
function formular()
{
echo "<form action=\"index.php\" method=\"post\">
<a style=\"font-size:14px; top: 0px; left: 0px;\">Login:</a>
<a style=\"position: relative; top: 20px; left: -45px;\">Username:</a>
<a><input name =\"user\" style=\"width: 115px; position: relative; top: 20px; left: 0px;\"></a>
<a style=\"position: relative; top: 20px; left: 1px;\">Password:</a>
<a><input name =\"pass\" style=\"width: 115px; position: relative; top: 20px; left: 0px;\"></a>
<a><input name=\"login\" type=\"submit\" value=\"Login\" style=\"position: relative; top: 25px; left: 60px;\"></a>
<a href=\"?seite=register\" style=\"position: relative; top: 30px; left: 2px;\">Registrieren</a>
</form>";
}
function logged_in()
{
$sql="SELECT ID FROM t_users WHERE session='".session_id()."'LIMIT 1";
$result = mysql_query($sql);
return (mysql_num_rows($result)==1);
}
function kontakt()
{
'<div style="margin: auto; border: 1px solid yellow;">
<table>
<hr />
<form action="?seite=kontakt.php" method="post">
<tr>
<td>Name:</td>
<td><input name="Name" size="20" type="text"></td>
</tr>
<tr>
<td>E-Mail:</td>
<td>
<input name="E_Mail" size="20" type="text">
</td>
</tr>
<tr>
<td>Betreff:</td>
<td>
<select name="Betreff" size="1">
<option>Hilfe</option>
<option>Kritik</option>
</select>
</td>
</tr>
<tr>
<td>Nachricht:</td>
<td>
<textarea cols="25" name="Message" rows="5">
</textarea>
</td>
</tr>
<tr>
<td>Wünsche Antwort:</td>
<td>
Ja <input name="Antwort" checked type="radio" value="ja">
Nein <input name="Antwort" type="radio" value="nein">
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input name="send" type="submit" value="Abschicken">
<input name="reset" type="reset" value="Löschen">
</td>
</tr>
</form>
</table>
</div>'
}
?>