Problem mit LogIn-Formular
das
- php
hallo,
habe ein LogIn-Formular, dass in den Adminbereich weitergeht...
Auf der Startseite gibt es einen Button (Admin), der zum LogIn führt.
Nachdem ich mich richtig eingeloggt habe, erscheint aber immer ein leeres Fenster...
Der LogIn hat jedoch funktioniert! (wenn ich erneut auf der Startseite auf den Admin-Link klicke komme ich ins Backend und bin als Admin angemeldet.
ich hoffe Ihr könnte mir weiterhelfen, danke schon mal!
und hier der php code:
<?php
$error_msg = "";
if ($_POST['username']) {
$username = $_POST['username'];
$password = $_POST['password'];
// Simple hard coded values for the correct username and password
$admin = "theterminator";
$adminpass = "goobernuts";
// connect to mysql here if you store admin username and password in your database
// This would be the prefered method of storing the values instead of hard coding them here into the script
if (($username != $admin) || ($password != $adminpass)) {
$error_msg = ': <font color="#FF0000">Your login information is incorrect</font>';
} else {
session_start();
$_SESSION['admin'] = "theterminator";
require_once "index.php";
exit();
}
}// close if post username
?>
<html>
<head>
<style type="text/css">
<!--
body {
font-family: Verdana, Geneva, sans-serif;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
}
-->
</style></head>
<body>
<?php
if ($_SESSION['admin'] != "theterminator") {
echo '<h3>Only the administrator can view this directory</h3><br />
<table width="340" border="0">
<form action="admin_check.php" method="post" target="_self">
<tr>
<td colspan="2">Please Log In Here' . $error_msg . '</td>
</tr>
<tr>
<td width="96">Username:</td>
<td width="234"><input type="text" name="username" id="username" style="width:98%" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" id="password" style="width:98%" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="button" id="button" value="Log In Now" /></td>
</tr>
</form>
</table>
<br />
<br />
<br />
<a href="../">Or click here to head back to the homepage</a>';
exit();
}
?>
</body>
</html>
...der code ist übrigens aus einem tutorial
Halo,
Nachdem ich mich richtig eingeloggt habe, erscheint aber immer ein leeres Fenster...
Dies hier sieht ungültig aus:
<table width="340" border="0">
<form action="admin_check.php" method="post" target="_self">
<tr>
...
</tr>
</form>
</table>
Pack mal die form um die table, nicht mixen.
Schorsch
Sorry, Nebenschauplatz.
Du kannst dich nur erfolgreich einloggen als "theterminator":
$admin = "theterminator";
if (($username != $admin) || ($password != $adminpass)) {
$error_msg = ': <font color="#FF0000">Your login information is incorrect</font>';
}
Genau dann aber wird nichts ausgegeben:
if ($_SESSION['admin'] != "theterminator") {
echo '<h3>Only the administrator can view this directory</h3><br />
Shorsch
Du kannst dich nur erfolgreich einloggen als "theterminator":
$admin = "theterminator";
if (($username != $admin) || ($password != $adminpass)) {
$error_msg = ': <font color="#FF0000">Your login information is incorrect</font>';
}Genau dann aber wird nichts ausgegeben:
if ($_SESSION['admin'] != "theterminator") {
echo '<h3>Only the administrator can view this directory</h3><br />
also wie gesagt, das einloggen funktioniert theoretisch. ich werde nur nicht auf die nächste seite weitergeleitet denke ich..
ursprünglich sah der codeteil:
else {
session_start();
$_SESSION['admin'] = "theterminator";
require_once "index.php";
exit();
}
...so aus:
else {
session_register('admin');
$_SESSION['admin'] = $username;
require_once "index.php";
exit();
}
--> dabei ist dann dieser fehler mit "deprecated..." aufgetreten und es wurde auf die zeile "session_register('admin');" hingewiesen
Der LogIn war trotzdem erflogreich, aber die weiterleitung auf die entsprechende seite hat nicht geklappt...
so ich hoffe das hilft weiter und verwirrt nicht zu sehr :)
<?php
$error_msg = "";
if ($_POST['username']) {$username = $_POST['username'];
$password = $_POST['password'];
//Prüfe die Formulareingaben
// Simple hard coded values for the correct username and password
$admin = "theterminator";
$adminpass = "goobernuts";
// connect to mysql here if you store admin username and password in your database
// This would be the prefered method of storing the values instead of hard coding them here into the script
if (($username != $admin) || ($password != $adminpass)) {
$error_msg = ': <font color="#FF0000">Your login information is incorrect</font>';
} else {
session_start();
$_SESSION['admin'] = "theterminator";
require_once "index.php";
//Möchtest du hier einen Script einbetten oder auf eine andere Seite verweisen
exit();
[sicher coden](http://board.protecus.de/t9630.htm)
Tja also bei mir hat es funktioniert.
Gruß Jonny F.
Tja also bei mir hat es funktioniert.
hi Jonny F,
hab das eben mal auch auf meinem Windows getestet und da funktioniert es tatsächlich!
ich arbeite aber hauptsächlich am Mac und dort erscheint statt dem Backend-Menü eine leere Seite..??
Woran kann das liegen?
ich teste das immer auf nem lokalen Server, hab xampp installiert..
hab das eben mal auch auf meinem Windows getestet und da funktioniert es tatsächlich!
sag ich doch :D
ich arbeite aber hauptsächlich am Mac und dort erscheint statt dem Backend-Menü eine leere Seite..??
des ist sehr merkwürdig...hast es aber schon mim firefox aufm mac probiert oder mit nem anderen browser.
hab mit mac normal net so viel zu tun, aber ich denke kaum, dass es damit zu tun hat.
ich teste das immer auf nem lokalen Server, hab xampp installiert..
ja ich auch...
Gruß Jonny F.
} else {
session_start();
$_SESSION['admin'] = "theterminator";
require_once "index.php";
willst du hiermit eine Seite aufrufen oder auf eine andere seite weiterleiten, also von index.php auf www.google.de (oder halt eine von deinen Seiten)
exit();
}
<table width="340" border="0">
<form action="admin_check.php" method="post" target="_self">
du weißt dass diese Seite admin_check.php heißen muss
schreib des mal so hin
<form action="admin_check.php" method="post">
oder noch besser so
<form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="POST">
Gruß Jonny F.
} else { session\_start();
$_SESSION['admin'] = "theterminator";
require_once "index.php";
willst du hiermit eine Seite aufrufen oder auf eine andere seite weiterleiten, also von index.php auf www.google.de (oder halt eine von deinen Seiten)
ich will damit auf eine von meinen seiten weiterleiten.
<form action="admin_check.php" method="post" target="_self">
du weißt dass diese Seite admin_check.php heißen muss
also oben statt index.php -> admin_check.php ?
also auf dem Windows eben hats auch so gefunzt, aber ich werde das später auf meinem Mac ausprobieren. Dank dir schonmal für deine Hilfe!
Hello,
du weißt dass diese Seite admin_check.php heißen muss
schreib des mal so hin<form action="admin_check.php" method="post">
oder noch besser so
<form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="POST">
Das ist eine ganz schlechte Idee, weil darüber eine XSS-Lücke aufgemacht wird.
Hingegen wäre
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST" target="fenstername">
mMn vollkommen in Ordnung, sofern der Script-Name nur Zeichen aus dem ASCII (0-127) enthalten kann.
Wofur sollten übrigens die Leerzeichen im Ressourcenamen gut sein?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
<form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="POST">
Das ist eine ganz schlechte Idee, weil darüber eine XSS-Lücke aufgemacht wird.
Hingegen wäre
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST" target="fenstername">
Wofur sollten übrigens die Leerzeichen im Ressourcenamen gut sein?
Die sind ein Zufallsprodukt...
Naja man lernt nie aus, des mit dem php_self hab ich noch nich gewusst, danke für die Info
Hello,
<form action=" <?php echo $_SERVER['PHP_SELF']; ?> " method="POST">
Das ist eine ganz schlechte Idee, weil darüber eine XSS-Lücke aufgemacht wird.
Hingegen wäre
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST" target="fenstername">
Das lässt sich übrigens auch ohne JavaScript missbrauchen und das achtion-Ziel damit verändern.
Da der Browser das bei Klick auch einen Formular-Button nicht anzeigt, wohin die Reise geht, merkt man es dann erst hinterher, aber auch nur, wenn man aufmerksam die Adressleiste beobachtet.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg