• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mein Tool im IE will nicht

Status
Für weitere Antworten geschlossen.
M

matibaski

Guest
Moin!

Habe mal ein Problem..
Und zwar, dass ich mit FireFox in mein CMS komme, doch im IE nicht.
Nämlich:
Im IE kommt die Passwortaufforderung.
Ich gebe das Passwort ein, das stimmt. Doch es kommt immer die Errormeldung, die Sagt, dass mein Passwort falsch ist.
Benötigte Dateien für das Login:
->index.php (Loginseite)
->login.php Prüft passwort und leitet auf admin.php weiter
->admin.php prüft ob Session gültig ist. Wenn ja, dann Inhalt zeigen.
Habe jeweils die Codes aufgelistet:

index.php:
PHP:
<?php
if(file_exists('install.php')) // Wenn install.php existiert,
{
 if(!file_exists('config.php')) // dann prüfen, ob config.php nicht existiert. Wenn nicht, dann
 {
 echo'<p align=center valign=middle><a href=install.php>Installation</a></p>'; // Installationspfad angeben.
 }
 else // Wenn config.php doch existiert,
 {
 echo'Bitte löschen Sie install.php und das Verzeichnis install/';
 }
}
else
{
 echo'<html>';
 echo'<head>';
 echo'<title>Login</title>';
 echo'<link rel="stylesheet" type="text/css" href="format.css">';
 echo'</head>';
 echo'<body>';
 echo'<p align="center"><b><font size="6">Administration</font></b><br>';
 echo'<form action="login.php" method="post">';
 echo'<div align="center">';
 echo'<table cellpadding="0" cellspacing="0" width="296" height="77">';
 echo'<!-- MSTableType="nolayout" -->';
 echo'<tr>';
 echo'<td height="38">Passwort:';
 echo'<input name="Passwort" size="10" type="password"></td>';
 echo'</tr>';
 echo'<tr>';
 echo'<td height="39">';
 echo'<input name="Send" type="submit" value="Login"></td>';
 echo'</tr>';
 echo'</table>';
 echo'</div>';
 echo'</form></p>';
 echo'<table cellpadding="0" cellspacing="0" width="100%" height="19">';
 echo'<tr>';
 echo'<td height="19" align="center" valign="middle">Admintool © by Matija Baskarad</td>';
 echo'</tr>';
 echo'</table>';
 echo'</body>';
 echo'</html>';
}
?>
Also es prüft hier, ob install.php gelöscht ist. Wenn ja dann Loginfeld zeigen. Wenn nein, dann Meldung geben,. Wenn install.php existiert, aber config.php nicht, dann kommt die Installation.

Hier stimmt es bis jetzt.
Nun die login.php:
PHP:
<?php
include("config.php");
    $Zugangspasswort = "$passwort";
        if($_REQUEST['Send'] && $_REQUEST['Passwort'] == $Zugangspasswort)
        {
          session_start();
          session_register("Passwort");
          $_SESSION['Passwort'] = $Zugangspasswort;
        }
?>
<html>

<head>
<title>Administration</title>
<link rel="stylesheet" type="text/css" href="format.css">
</head>

<body>
<?php
if($_SESSION['Passwort'] == $Zugangspasswort)
{
echo"Sie sind erfolgreich eingeloggt!<br>Sie werden zur Administration weitergeleitet.<script>top.location.href='admin.php?site=main'</script>";
}
else
{
echo 'Sie sind nicht befugt, diese Seite anzusehen<br />Möglicherweise ist das eingegeben Passwort falsch.<br /><br />';
echo 'Bitte loggen Sie sich <a href="index.php">hier</a> erneut ein.';
}
?>
</body>

</html>
Also hier prüft es das Passwort. Wenn es stimmt, dann ist das Passwort zugleich die Session. Das Passwort steht in config.php..
Keine Angst, niemand sieht es auf dem Web.
Denn es ist so gemacht:
PHP:
<?php
$passwort = "passwort";
?>
Nun die admin.php

PHP:
<?php
session_start();
?>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Administration</title>
<style type="text/css">
body {
font-family: Verdana,Arial;
font-size: 10pt;
color: #000000;
background-color: #ffffff;
}

table, tr, td {
font-family: Verdana,Arial;
font-size: 10pt;
color: #000000;
}
</style>
</head>

<body style="background-image:url(images/bg.png); background-repeat:repeat-x;">
<?php
include("config.php");
    $Zugangspasswort = $passwort;
        if($_SESSION['Passwort'] == $Zugangspasswort)
        {
echo'<div align="center">';
echo'<table cellpadding="0" cellspacing="0" width="720" height="338">';
echo'<!-- MSTableType="nolayout" -->';
echo'<tr>';
echo'<td height="171" width="720" colspan="3">';
echo'<img border="0" src="images/top.gif" width="720" height="171"></td>';
echo'</tr>';
echo'<tr>';
echo'<td height="147" width="156" valign="top" bordercolorlight="#000000" bordercolor="#000000">';
echo'<table cellpadding="0" cellspacing="0" width="100%" height="84">';
echo'<!-- MSTableType="nolayout" -->';
echo'<tr>';
echo'<td height="5">';
echo'<img border="0" src="images/navig_top.png" width="156" height="5"></td>';
echo'</tr>';
echo'<tr>';
echo'<td height="74">';
echo'<table cellpadding="0" cellspacing="0" width="156" background="images/navig_middle.png" height="150%">';
echo'<!-- MSTableType="nolayout" -->';
echo'<tr>';
echo'<td height="111" width="6">&nbsp;</td>';
echo'<td height="111" width="150" valign="top">';
if(!isset($_GET['navig']))
{
$_GET['navig'] = 'main';
}
switch($_GET['navig'])
{
default: include("_private/navig_main.php"); break;
case 'main' : include("_private/navig_main.php"); break;
} 
echo'</td>';
echo'<td height="111" width="6">&nbsp;</td>';
echo'</tr>';
echo'</table>';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td height="5">';
echo'<img border="0" src="images/navig_bottom.png" width="156" height="5"></td>';
echo'</tr>';
echo'</table>';
echo'</td>';
echo'<td height="148" width="18">&nbsp;</td>';
echo'<td height="147" width="546" valign="top">';
echo'<table cellpadding="0" cellspacing="0" width="546" height="100%">';
echo'<!-- MSTableType="nolayout" -->';
echo'<tr>';
echo'<td height="17" width="547" valign="top">';
echo'<table cellpadding="0" cellspacing="0" width="100%" height="128">';
echo'<!-- MSTableType="nolayout" -->';
echo'<tr>';
echo'<td height="4" valign="top">';
echo'<img border="0" src="images/content_top.gif" width="546" height="4"></td>';
echo'</tr>';
echo'<tr>';
echo'<td height="120" valign="top">';
echo'<table cellpadding="0" cellspacing="0" width="546" background="images/content_middle.gif" height="100%">';
echo'<!-- MSTableType="nolayout" -->';
echo'<tr>';
echo'<td height="89" width="6">&nbsp;</td>';
echo'<td height="89" width="494" valign="top">';
$site = $_GET['site'];
if(!isset($site))
{
$_GET['site'] = 'main';
}
switch($site)
{
default: include("_private/main.php"); break;
case 'main' : include("_private/main.php"); break;
case 'content_bearbeiten' : include("content/content_bearbeiten.php"); break;
case 'content_insert' : include("content/content_insert.php"); break;
case 'logout' : include("_private/logout.php"); break;
case 'einstellungen' : include("einstellungen/einstellungen.php"); break;
case 'save' : include("einstellungen/save.php"); break;
case 'write' : include("einstellungen/write.php"); break;
case 'auswaehlen' : include("einstellungen/auswaehlen.php"); break;
}
echo'</td>';
echo'<td height="89" width="47">&nbsp;</td>';
echo'</tr>';
echo'</table>';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td height="4" valign="top">';
echo'<img border="0" src="images/content_bottom.gif" width="546" height="4"></td>';
echo'</tr>';
echo'</table>';
echo'</td>';
echo'</tr>';
echo'</table>';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td height="19" width="720" valign="middle" bordercolorlight="#000000" bordercolor="#000000" colspan="3">';
echo'<p align="center">Admintool © by Matija Baskarad</td>';
echo'</tr>';
echo'</table>';
echo'</div>';
        }
        else 
        {
          echo 'Ihre Session ist nicht gültig!<br />';
          echo 'Bitte loggen Sie sich <a href="index.php">hier</a> ein.';
        }
?>
</body>

</html>
Also wenn die Session Passwort gleich wie $Zugangspasswort ist, dann kommt der Inhalt. Wenn nicht, dann kommt die Meldung, die ich im IE immer sehe. Das Passwort ist falsch.

Zum Testen:
http://freerunning.pytalhost.net/admin/index.php

Passwort ist "michel"

Im Firefox ist alles okay, aber im IE kommt die Meldung, session ist ungültig.

Weiss jemand wieso?

Das Problem ist sehrwarscheinlich bei login.php
Aber ich komme nicht drauf.

MfG, matibaski
 
Werbung:
Das Send-Feld (Submit) wird beim IE nicht mit übergeben. Daher erkennt dein login.php korrekt, dass sich der nutzer nicht anmeldet.

Gruß,
Jumper, hte II.
 
PHP:
if($_REQUEST['Send'] && $_REQUEST['Passwort'] == $Zugangspasswort)
hier wird es ja übernommen.

Hier in index.php:
HTML:
<input name="Send" type="submit" value="Login">

Also kann es nicht an dem liegen.
Oder meinst du woanders?

MfG, matibaski
 
Werbung:
Das Send-Feld (Submit) wird beim IE nicht mit übergeben. Daher erkennt dein login.php korrekt, dass sich der nutzer nicht anmeldet.

Gruß,
Jumper, hte II.

Öhm nö, bei mir übergibt der IE den Namen des Submit Buttons.
On-Topic:
Der Fall ist perfekt zum selbst debuggen mit echo statements geeignet..
Pack doch einfach mal hinter jede Zuweisung eine Ausgabe und guck dir
im IE an, was davon ausgeführt wird und was nicht(bzw was falsch ausgeführt
wird)

Woran es liegen könnte weiss ich auch nicht direkt. Auf jedenfall würde ich
session_register mal rausnehmen... ist eine PHP Variable deaktiviert, klappt
das nicht mehr... safety first.
Generell würde ich den Block so schreiben(auch wenns daran wohl nicht liegt) ;)

PHP:
        if(isset($_POST['Send']) and ($_POST['Passwort'] == $Zugangspasswort))
        {
          session_start();
          $_SESSION['Passwort'] = $Zugangspasswort;
        }
 
Zuletzt bearbeitet:
PS: Hattest nen Fehler bei den Klammern.
Hab's nun so:
PHP:
<?php
include("config.php");
$Zugangspasswort = "$passwort";
if(isset($_POST['Send']) and ($_POST['Passwort'] == $Zugangspasswort))
{
 session_start();
 $_SESSION['Passwort'] = $Zugangspasswort;
}
?>

<?php
if($_SESSION['Passwort'] == $Zugangspasswort)
{
echo"Sie sind erfolgreich eingeloggt!<br>Sie werden zur Administration weitergeleitet.<script>top.location.href='admin.php?site=main'</script>";
}
else
{
echo 'Sie sind nicht befugt, diese Seite anzusehen<br />Möglicherweise ist das eingegeben Passwort falsch.<br /><br />';
echo 'Bitte loggen Sie sich <a href="index.php">hier</a> erneut ein.';
}
?>

Will trotzdem nicht.
Es erscheint immernoch die else {} Meldung.

Bin am verzweifeln. :(
 
ich zitiere mich mal..
Der Fall ist perfekt zum selbst debuggen mit echo statements geeignet..
Pack doch einfach mal hinter jede Zuweisung eine Ausgabe und guck dir
im IE an, was davon ausgeführt wird und was nicht(bzw was falsch ausgeführt
wird)

was passiert? was wird noch ausgegeben und was nicht mehr?
p.s. klammer fehler im post darüber bereinigt
 
Werbung:
prostel schrieb:
was passiert? was wird noch ausgegeben und was nicht mehr?
matibaski schrieb:
Will trotzdem nicht.
Es erscheint immernoch die else {} Meldung.

Es erscheint dies hier:
PHP:
else
{
echo 'Sie sind nicht befugt, diese Seite anzusehen<br />Möglicherweise ist das eingegeben Passwort falsch.<br /><br />';
echo 'Bitte loggen Sie sich <a href="index.php">hier</a> erneut ein.';
}

Im Explorer:
Sie sind nicht befugt, diese Seite anzusehen
Möglicherweise ist das eingegebene Passwort falsch.

Bitte loggen Sie sich hier erneut ein.
 
Kann nicht sein.
Habe bei Inhaltsschutz die Stufe auf 0 gesetzt.
Es stand:
Alle Cookies werden von jeder Seite zugelassen. Oder irgendwie so..

Abgesehen davon, auf fünf weiteren PC's ging es auch nicht. Nur mit FireFox.
 
Werbung:
Also ich habe mal die login.php wie folgt geändert:
PHP:
<?php
include("config.php");
var_dump( $_REQUEST);  // DEBUGGING!!!!!!
    $Zugangspasswort = "$passwort";
        if($_REQUEST['Send'] && $_REQUEST['Passwort'] == $Zugangspasswort)
        {
          session_start();
          session_register("Passwort");
          $_SESSION['Passwort'] = $Zugangspasswort;
        }
?>
<html>

<head>
<title>Administration</title>
<link rel="stylesheet" type="text/css" href="format.css">
</head>

<body>
<?php
if($_SESSION['Passwort'] == $Zugangspasswort)
{
echo"Sie sind erfolgreich eingeloggt!<br>Sie werden zur Administration weitergeleitet.<script>top.location.href='admin.php?site=main'</script>";
}
else
{
echo 'Sie sind nicht befugt, diese Seite anzusehen<br />Möglicherweise ist das eingegeben Passwort falsch.<br /><br />';
echo 'Bitte loggen Sie sich <a href="index.php">hier</a> erneut ein.';
}
?>
</body>

</html>

und siehe da, beim Passwort test gibt es das Ergebnis:
Code:
array(2) { ["Passwort"]=> string(4) "test" ["PHPSESSID"]=> string(32) "2bed17ef14ae1d301da1eb08e1ef568e" } Sie sind nicht befugt, diese Seite anzusehen
Möglicherweise ist das eingegeben Passwort falsch.

Bitte loggen Sie sich hier erneut ein.

Das ganze mit dem IE7 .... Und jetzt büdde noch mal das ganze .....

Gruß,
Jumper, the II.
 
Danke. Nun funktioniert es auch im IE.
Wieso
PHP:
var_dump( $_REQUEST);
??
Ich habe diese Funktion noch nie benutzt (var_dump)
Für was ist diese?

MfG, matibaski
 
var_dump gibt den Inhalt einer Variable aus.

php.net schrieb:
var_dump — Gibt alle Informationen zu einer Variablen aus

Die Funktion gibt strukturierte Informationen über einen oder mehrere Ausdrücke aus, darunter auch den entsprechenden Typ und Wert. Arrays und Objekte werden rekursiv durchlaufen und die jeweiligen Werte eingerückt dargestellt, um die Struktur zu verdeutlichen.
[phpnet]var_dump[/phpnet]
 
Werbung:
Will nicht spamen, aber Danke mussman ja sagen.

DANKE!

MfG, matibaski
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben