Hallo,
ich habe ein Problem mit meinem Loginsystem. Im neuen Firefox (3.5) funktioniert alles wie es soll nur eben im IE 6 nicht. Wenn ich auf der Loginseite testweise einem Benutzernamen und ein Passwort eingebe und auf anmelden klicke kommt eine leere weiße Seite mit dergleichen URL.
(login.php). Bei einem Refresh wird ordnungsgemäß die
logincheck.php aufgerufen, durchlaufen und man wird zur
memberbereich.php bzw.
fehler.php weitergeleitet. Letztere natürlich nur wenn die Daten falsch waren. Es funktioniert also auch im IE allerdings nur nach einem Refresh der Seite. Jetzt konnte ich den Fehler im Skript leider nicht ausfindig machen der dafür verantwortlich ist. Eine Möglichkeit wäre einen automatischen Refresh einzubauen.
Hier sind alle dafür zuständigen php Dateien:
LOGIN.PHP
Sie besteht nur aus HTML. 2 Eingabefelder für Name und Passwort. Das Javascript überprüft vor dem Absenden ob die Felder ausgefüllt wurden.
HTML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TESTSEITE - LOGIN</title>
<style type="text/css">
<!--
<h4> { color:#999999; }
#headline { font:small-caps 70% Verdana; }
#normaltext { font:small-caps 90% Verdana; }
a:link { color:#999999; text-decoration:none; }
a:visited { color:#999999; text-decoration:none; }
a:hover { color:#333333; text-decoration:none; }
a:active { color:#999999; text-decoration:none; }
#Aussentabelle { width:685px; margin-left:145px; }
p { font-family:Verdana,Arial,serif;font-size:11px; }
#p2 { font-family:Verdana,Arial,serif;font-size:11px;color:333333; }
#letterbreite { font-family:Verdana,Arial,serif;font-size:10px;letter-spacing:0.0em;color:CC6600; }
div { border-width:1px; border-color:#787878; border-style:dashed; padding:10px; }
-->
</style>
<script language="JavaScript">
function chkFormular()
{
if(document.LOGIN.Pseudonym.value == "")
{
alert("Bitte gib dein Pseudonym ein!");
document.LOGIN.Pseudonym.focus();
return false;
}
if(document.LOGIN.Passwort.value == "")
{
alert("Bitte gib dein Passwort in das Feld ein!");
document.LOGIN.Passwort.focus();
return false;
}
}
</script>
</head>
<body background="background.jpg">
<table id="Aussentabelle" border="0"><td style="padding:20px">
<table border="0" bgcolor='#FFFFFF' cellspacing='0' cellpadding='0' width='650px'><td><a href="http://startseite.php"><img src='Logo3.gif' border='0'></a></td><td bgcolor='#EAEAEA' align="center"> <p id="p2"><b>SCHRITT 4</b></p></td></table>
<br><p style="font-family:Verdana,Arial,serif; font-size:13px; color:#CC6600;"><b>BENUTZER - LOGIN</b></p><br>
<p><b>BITTE GIB DEIN PSEUDONYM UND DEIN PASSWORT IN DIE EINGABEFELDER EIN.</b><br> (Achte dabei auf Groß,- u. Kleinschreibung)</p><br>
<form name="LOGIN" onSubmit="return chkFormular()" method="post" action="logincheck.php">
<div><table border="0" cellspacing='3'><td><p id="letterbreite"><b>PSEUDONYM</b></p></td><td><p id="letterbreite"><b>PASSWORT</b></p></td>
<tr><td><input name="Pseudonym" type="text"></td><td><input name="Passwort" type="password"></td><td><input type="submit" name="Submit" value="Anmelden"></td></tr>
</table></div>
</form>
<br><br><br><br><hr style="border:none; border-top: 1px dotted #999999; background-color: #FFFFFF;height: 1px;">
<p>© 2009 BY <a href="http://xxx.net"><b>xxx</b></a> - ALL RIGHTS RESERVED - <a href="http://xxx.net/html/impressum.html"><b>IMPRESSUM</b></a></p>
</td></table>
</body>
</html>
LOGINCHECK.PHP
Hier werden die Formulareingaben auf Richtigkeit überprüft. Ist alles in Ordnung wird die Session gestartet und man wird zum Memberbereich weitergeleitet. War Name oder Passwort falsch dann gibt es die Fehler.php
PHP-Code:
<?php
ob_start();
error_reporting (E_ALL ^ E_NOTICE);
// Verbindung zur Datenbank herstellen
include 'connect.php';
//Formulareingaben in Variabeln speichern
$Pseudonym = $_POST["Pseudonym"];
$Passwort = $_POST["Passwort"];
//Abfrage der Eingaben
$abfrage = "SELECT Pseudonym, Passwort FROM table WHERE Pseudonym = '$Pseudonym' AND Passwort = '$Passwort' LIMIT 1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
//$Code32 = $row->Code32;
}
if(mysql_num_rows($ergebnis))
{
session_start();
$_SESSION['Passwort'] = $Passwort;
$_SESSION['random_key'] = strtotime(date('Y-m-d H:i:s'));
$SESSID = $_SESSION['random_key'];
$_SESSION['Pseudonym'] = $Pseudonym;
header("Location: http://xxx.net/memberbereich.php?Pseudonym=$Pseudonym&SESSID=$SESSID");
}
else
{
header("Location: http://xxx.net/fehler2.php");
}
ob_end_flush();
?>
MEMBERBEREICH.PHP
Hier wird man mit seinem Namen begrüßt und findet seine hochgeladenen Bilder sortiert nach Datum vor. Es gibt eine Blätterfunktion. Hier kann man sich auch ausloggen.
PHP-Code:
<?php
session_start();
$Pseudonym = $_GET['Pseudonym'];
$SESSID = $_GET['SESSID'];
$Passwort = $_SESSION['Passwort'];
// Wenn $_SESSION['Passwort'] gesetzt ist und wenn $_SESSION['Passwort'] gleich $Passwort ist, dann ist man im gesicherten Bereich
if(isset($_SESSION['Passwort']) && $_SESSION['Passwort'] == $Passwort) {
// Andernfalls wird eine Meldung ausgegeben, dass man nicht eingeloggt ist
} else {
header("Location: http://xxx.net/fehler3.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>xxx </title>
<style type="text/css">
<!--
<h4> { color:#999999; }
#headline { font:small-caps 70% Verdana; }
#normaltext { font:small-caps 90% Verdana; }
a:link { color:#999999; text-decoration:none; }
a:visited { color:#999999; text-decoration:none; }
a:hover { color:#333333; text-decoration:none; }
a:active { color:#999999; text-decoration:none; }
#Aussentabelle { width:685px; margin-left:145px; }
p { font-family:Verdana,Arial,serif;font-size:11px; }
#letterbreite { font-family:Verdana,Arial,serif;font-size:12px;letter-spacing:0.3em;color:CC6600; }
div { border-width:1px; border-color:#787878; border-style:dashed; padding:0px; }
-->
</style>
</head>
<body background="background.jpg">
<table id="Aussentabelle" border="0"><td style="padding:20px">
<table border="0" bordercolor='#FFFFFF' bgcolor='#EAEAEA' cellspacing='0' cellpadding='7' width='650px' rules='rows'>
<td><p><b>HALLO <?php echo "$Pseudonym" ;?></b><br><br>Willkommen in deinem privaten Bereich</p></td><td><?php echo "<a href='logout.php?SESSID=$SESSID'><p>Logout</p></a>"?></td></table>
<br><table border='1' bordercolor='#FFFFFF' bgcolor='#EAEAEA' cellspacing='0' cellpadding='15' rules='all' width='650px'"
style="font-family:Verdana, Arial, sans-serif; font-size:9px">
<tr>
<?php
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
{
$seite = 1;
}
//Verbindung zu Datenbank aufbauen
include 'connect.php';
$abfrage = "SELECT Bilderlink, Thumb, Beschreibung FROM table WHERE Copyright = '$Pseudonym'";
$ergebnis = mysql_query($abfrage);
if(mysql_errno()) echo mysql_error();
$num_rows = mysql_num_rows($ergebnis);
echo " <p style=\"color:#000000;font-size:11px;font-family:verdana,Arial,serif;\"> <b>DU HAST BISHER (".$num_rows.") BILDER HOCHGELADEN</b></p><br>";
//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite = 4;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
//Tabelle Abfragen
//Tabelle heißt hier einfach: Tabelle
$abfrage = "SELECT Bilderlink, Thumb, Beschreibung FROM table WHERE Copyright = '$Pseudonym' ORDER BY Erstellt DESC LIMIT $start,
$eintraege_pro_seite";
$ergebnis = mysql_query($abfrage);
if(mysql_errno()) echo mysql_error();
while($row = mysql_fetch_object($ergebnis))
{
echo "<td><a href= '$row->Bilderlink' target='pic_haupt'><img src='$row->Thumb' title='$row->Beschreibung' width=126 height=126 border=0></a><br><br><input type='checkbox' name='delete'> LÖSCHEN<br></td>";
if ($i % 4 == 3) echo "</tr><tr>";
$i++;
}
?>
</table>
<?php
//Jetzt kommt das "Inhaltsverzeichnis",sprich dort steht Seite: 1 2
//Wieviele Einträge gibt es überhaupt
/*Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt - Sonst funktioniert die Blätterfunktion nicht richtig, und hier kann nur 1 Feld abgefragt werden, also id*/
$result = mysql_query("SELECT Bilderlink, Thumb, Beschreibung FROM table WHERE Copyright = '$Pseudonym' ORDER BY Erstellt DESC");
$menge = mysql_num_rows($result);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<br><p style='color:#000000;font-size:10px;font-family:verdana,Arial, serif'> <b>Seite:</b>";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
{
$b = $a + 1;
//Wenn User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b)
{
echo "<b> $b </b>";
}
//Auf dieser Seite ist der User nicht, also Link ausgeben
else
{
echo "<a href=\"?Pseudonym=$Pseudonym&SESSID=$SESSID&seite=$b\"> $b </a>";
}
}
echo"</p>";
?>
<br><br><br><hr style="border:none; border-top: 1px dotted #999999; background-color: #FFFFFF;height: 1px;">
<p>© 2009 BY <a href="http://xxx.net"><b>STARTSEITE</b></a> - ALL RIGHTS RESERVED - <a href="http://xxx.net/html/impressum.html"><b>IMPRESSUM</b></a></p><br><br>
</td></table>
</body>
</html>
Ich bin für jeden Tip dankbar
Gruß
René