wmmk
|
Forenuser
|
|
registriert
|
17.08.2008
|
wohnt in
|
|
Beiträge
|
10
|
|
PHP:
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>TsG Clan - Login</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'tsg-clan_wmmk';
$MYSQL_PASS = '****';
$MYSQL_DATA = 'tsg-clan_wmmk';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// liefert die Rechte eines Users ..
function getRights()
{
$rights = array();
// .. indem die Rechte eines User aus der Datenbank ausgewählt werden..
if(isset($_SESSION['UserID'])){
$sql = "SELECT
Recht
FROM
Rechte
WHERE
UserID = '".$_SESSION['UserID']."'
";
$result = mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
$rights = array();
// .. und als array zurückgegeben werden
while($row = mysql_fetch_assoc($result))
$rights[] = $row['Recht'];
}
return $rights;
}
// Loggt einen User ein, ..
function doLogin($ID, $Autologin=false)
{
// .. indem die aktuelle Session ID in der Datenbank gespeichert wird
$sql = "UPDATE
User
SET
SessionID = '".mysql_real_escape_string(session_id())."',
Autologin = NULL,
IP = '".$_SERVER['REMOTE_ADDR']."',
Letzte_Aktion = '".mysql_real_escape_string(time())."',
Letzter_Login = '".mysql_real_escape_string(time())."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Wenn 'eingeloggt bleiben' aktiviert wurde
if($Autologin){
// Zufallscode erzeugen
$part_one = substr(time()-rand(100, 100000),5,10);
$part_two = substr(time()-rand(100, 100000),-5);
$Login_ID = md5($part_one.$part_two);
// Code im Cookie speichern, 10 Jahre dürfte genügen
setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
$sql = "UPDATE
User
SET
Autologin = '".$Login_ID."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// Daten des Users in der Session speichern
$sql = "SELECT
Nickname
FROM
User
WHERE
ID = '".$ID."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$_SESSION['UserID'] = $ID;
$_SESSION['Nickname'] = $row['Nickname'];
// Rechte in der Session speichern
$_SESSION['Rechte'] = getRights();
}
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
// Falls der Nickname und das Passwort übereinstimmen..
$sql = "SELECT
ID
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
Passwort = '".md5(trim($_POST['Passwort']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// wird die ID des Users geholt und der User damit eingeloggt
$row = mysql_fetch_assoc($result);
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
if (mysql_num_rows($result)==1){
doLogin($row['ID'], isset($_POST['Autologin']));
echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
echo "Sie wurden erfolgreich eingeloggt.<br>\n".
"Zur <a href=\"\">Startseite</a>\n";
}
else{
echo "Sie konnten nicht eingeloggt werden.<br>\n".
"Nickname oder Passwort fehlerhaft.<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
}
}
else{
echo "<form ".
" name=\"Login\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "Nickname :\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "Passwort :\n";
echo "<input type=\"password\" name=\"Passwort\">\n";
echo "<br>\n";
echo "eingeloggt bleiben :\n";
echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
echo "<br>\n";
echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"register.php\">registriert</a>?\n";
echo "</form>\n";
}
?>
</body>
</html>
das isser! hoffe auf lösung
Dieser Beitrag wurde am 30.08.2008 um 11:57:47 Uhr von Flitze zum 2. Mal editiert.
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hm also vom Code her stimmt alles...
Einloggen tut er auch, wenn man das PW rausnimmt..
also meiner Meinung kann es dann nur daran liegen, dass das PW falsch in der Datenbank gespeichert ist, z.B. duch fehlerhafte Verschlüsselung, Groß/Klein-Schreibung oder Leerzeichen.
Haste mal nen neuen User angelegt?
Name: test_user
PW: 123456
Wie legst du neue User an, direkt in der Datenbank oder über das Registrierungsformular?
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
nein, nicht wirklich..
KA, vom Code her ist alles ok, un wenn ich den von der Homepage nehme gehts auch.. Sry, aber ich hab echt ka, kann eich nur an der DB liegen
|