Hey,
Ich habe folgendes Problem:
Ich programmier schon seit einiger Zeit an einer Art CMS.
Nun habe ich das Backend komplett mit login verpasst (ich habe nachträglich die Passwortabfragen eingefügt).
Also zum Problem.
Ich habe die Login-form als index.php im admin ordner verfasst:
index.php
In dieser Form werden halt die Logindaten abgenommen und per POST an action.php geschickt.
action.php
Hier werden halt die Daten angenommen und erst in md5 verschlüsselt (da die passwörter in der Datenbank sicherheitshalber in md5 gespeichert sind) und verglichen.
Und wenn der Vergleich positiv verlaufen ist, wird in der SESSION vermerkt das man 'on' ist.
Dann wird in der eigtl. Adminseite die SESSION überprüft:
index2.php
Alles klappt wunder bar im Firefox.
Jedoch im IE geht beim Login Vorgang irgendwie die SESSION "verschwunden". Nach der Nachricht, dass man erfolgreich eingeloggt ist, kommt nachdem man den Fortfahren link betätigt hat, die nächste nachricht, dass man nciht eigeloggt sein ist.
Ich kann mir das nicht erklären.
Aber testet selbst:
HIER KLICKEN!
Logindaten : Benutzername : zeron
Passwort :12345678
PS: entschludigt den unübersichtlichen HTML-Code, ich habe ihn einfach immer copyed&pasted ;-) Aber der sollte sowieso nicht von Bedeutung für den Fehler sein.
Hochachtungsvoll
Kai(15)
Ich habe folgendes Problem:
Ich programmier schon seit einiger Zeit an einer Art CMS.
Nun habe ich das Backend komplett mit login verpasst (ich habe nachträglich die Passwortabfragen eingefügt).
Also zum Problem.
Ich habe die Login-form als index.php im admin ordner verfasst:
index.php
PHP-Code:
<?php
session_start();
error_reporting(E_ALL);
require_once('mysql.php');
?><center>
<table width=873 height=56 border=0 cellspacing=0 cellpadding=0>
<tr>
<td colspan=3><img src=images/top.jpg></td>
</tr>
<tr>
<td width=38><img src=images/left.jpg width="38" height="196"> </td>
<td width=797 bgcolor="#DBDBDB" style=text-decoration:none; font-size:1>
<font color="#666666" size="-2" face="Arial"><center>
<form action="action.php" method="post">
<table width="242" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<b><font size="-1">Bitte erst anmelden</b>
</td>
</tr>
<tr>
<td width="120" bgcolor="#e7e7e7" ><font size="-3">Benutzername</td>
<td width="157" bgcolor="#ffffff"><input type="text" name="name" size="20" class="input"></td>
</tr>
<tr>
<td width="120" bgcolor="#e7e7e7"><font size="-3">Passwort</td>
<td width="157" bgcolor="#ffffff"><input type="password" name="pw" size="20" class="input"></td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<input type="submit" name="confirm" value="Anmelden" class="button">
</td>
</tr>
</table>
</form><br></td>
<td width=38><img src=images/right.jpg width="38" height="196"> </td>
</tr>
<tr>
<td colspan=3><img src=images/bottom.jpg></td>
</tr>
</table>
action.php
PHP-Code:
<?php
session_start();
require_once 'mysql.php';
$NAME = $_POST['name'];
$PW = $_POST['pw'];
$query ='SELECT passwort, rang FROM user WHERE name = \''.mysql_escape_string($NAME).'\' LIMIT 1';
$result = mysql_query($query) or die(mysql_error());
$get = mysql_fetch_array($result) or die(mysql_error());
$HASHPW = md5($get['passwort']);
$HASH = md5($PW);
if($HASH == $HASHPW)
{
$_SESSION['on'] = true;
$_SESSION['name'] = $_POST['name'];
$_SESSION['rang'] = $get['rang'];
echo '<center>
<table width=873 height=56 border=0 cellspacing=0 cellpadding=0>
<tr>
<td colspan=3><img src=images/top.jpg></td>
</tr>
<tr>
<td width=38><img src=images/left.jpg width="38" height="100"> </td>
<td width=797 bgcolor="#DBDBDB" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono"><center>Danke für deine Anmeldung!<br>
<a href="index2.php">Fortfahren</a></center></td>
<td width=38><img src=images/right.jpg width="38" height="100"> </td>
</tr>
<tr>
<td colspan=3><img src=images/bottom.jpg></td>
</tr>
</table>';
}else{
echo 'nono';
}
?>
Und wenn der Vergleich positiv verlaufen ist, wird in der SESSION vermerkt das man 'on' ist.
Dann wird in der eigtl. Adminseite die SESSION überprüft:
index2.php
PHP-Code:
<?php
session_start();
if($_SESSION['on'] == true) {
}else{
echo '<center>
<table width=873 height=56 border=0 cellspacing=0 cellpadding=0>
<tr>
<td colspan=3><img src=images/top.jpg></td>
</tr>
<tr>
<td width=38><img src=images/left.jpg width="38" height="100"> </td>
<td width=797 bgcolor="#DBDBDB" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono"><center>Du bist nicht eingeloggt!<br>
<a href="index.php">Einloggen</a></center></td>
<td width=38><img src=images/right.jpg width="38" height="100"> </td>
</tr>
<tr>
<td colspan=3><img src=images/bottom.jpg></td>
</tr>
</table>';
return false;
}
?>
<html><center>
<table width=873 height=56 border=0 cellspacing=0 cellpadding=0>
<tr>
<td colspan=3><img src=images/top.jpg></td>
</tr>
<tr>
<td width=38><img src=images/left.jpg width="38" height="100"> </td>
<td width=797><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" bgcolor="#DBDBDB"><br>
</td>
<td width="85%"></td>
</tr>
</table></td>
<td width=38><img src=images/right.jpg width="38" height="100"> </td>
</tr>
<tr>
<td colspan=3><img src=images/bottom.jpg></td>
</tr>
</table>
<br>
<table width=873 height=56 border=0 cellspacing=0 cellpadding=0>
<tr>
<td colspan=3><img src=images/top.jpg></td>
</tr>
<tr>
<td width=38><img src=images/left.jpg> </td>
<td width=797><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="15%" bgcolor="#DBDBDB">
<a href="newsadmin.php" target="iframe" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono">News</font></a><br>
<a href="feedbackadmin.php" target="iframe" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono">Feedback</font></a><br>
<a href="bilderadmin.php" target="iframe" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono">Bilder</font></a><br>
<a href="memberadmin.php" target="iframe" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono">Admins</font></a><br>
<td width="71%" bgcolor="#DBDBDB">
<iframe src="adminstart.php" width="100%" height="100%" border=0 framespacing=0 cellspadding=0
name=iframe bgcolor="#DBDBDB">
</iframe></td>
<td width="14%" bgcolor="#DBDBDB"><table>
<tr>
<td class=menu2>
<font size=2>Name: <font color=red><?php echo $_SESSION['name'] ?></font></font></td>
</tr>
<tr>
<td class=menu2>
<a href="logout.php" style=text-decoration:none; font-size:1>
<font color="#666666" size="-1" face="Courier New, Courier, mono">Logout</a></td>
</tr>
</table>
</td>
</tr>
</table></td>
<td width=38><img src=images/right.jpg> </td>
</tr>
<tr>
<td colspan=3><img src=images/bottom.jpg></td>
</tr>
</table>
Jedoch im IE geht beim Login Vorgang irgendwie die SESSION "verschwunden". Nach der Nachricht, dass man erfolgreich eingeloggt ist, kommt nachdem man den Fortfahren link betätigt hat, die nächste nachricht, dass man nciht eigeloggt sein ist.
Ich kann mir das nicht erklären.
Aber testet selbst:
HIER KLICKEN!
Logindaten : Benutzername : zeron
Passwort :12345678
PS: entschludigt den unübersichtlichen HTML-Code, ich habe ihn einfach immer copyed&pasted ;-) Aber der sollte sowieso nicht von Bedeutung für den Fehler sein.
Hochachtungsvoll
Kai(15)
Kommentar