Anmeldeformular funktioniert nicht richtig
Rico
- php
0 Tom0 Tobias Kloth0 martinli
Hallo,
Ich habe Probleme mit einem Anmeldeskript für die Verwaltung meines Gästebuches, das ich in Anlehnung an ein Skript von Murdoch abgeändert und an mein Layout angepasst habe.
Wenn ich die Seite aufrufe, dann wird das Anmeldeformular angezeigt (passt soweit).
Wenn ich nun aber für die Felder "Kennung" und "Passwort" jeweils "gast" eingebe, so wie es das Skript aktuell vorsieht, und auf die Schaltfläche "Login" klicke, dann werde ich immer wieder zum Eingabeformular umgeleitet, nicht aber zur Anzeige der Einträge, damit ich diese verwalten kann:
<?php
@session_start ();
if (!empty ($_REQUEST ["Logout"]))
{
@session_destroy ();
header ("Location:PHP.GaestebuchEintraegeLesen.php");
}
else
if (!empty ($_REQUEST ["Login"]))
{
$Kennung = $_REQUEST ["Kennung"];
$Passwort = $_REQUEST ["Passwort"];
session_register ("Kennung");
session_register ("Passwort");
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="CSS.Definitionen.css">
</head>
<body class="LayoutSeite">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td width="100%" align="center">
<form action="PHP.GaestebuchAdministration.php" method="post">
<?php
if ($_SESSION ["Kennung"] == "gast" && $_SESSION ["Passwort"] == "gast")
{
/*
Anzeige der Einträge und des Logout-Buttons
*/
}
else
{
/*
Anzeige des Anmeldeformulares
*/
}
}
?>
</form>
</td>
</tr>
</table>
</body>
</html>
Das Skript von Murdoch findet Ihr auf der Seite http://spotlight.de/nzforen/php/m/php-1093517483-8178.html.
Was stimmt nicht am Aufbau meiner Administrationsseite ?
Desweiteren ist es wohl unsinnig, wenn ich die Zugangsdaten direkt in die Datei eingefügt habe.
Reicht es, wenn ich die Variablen in einer eigenen Datei definiere und dann über "include" einbinde oder gibt es da noch bessere Möglichkeiten ?
Vielen Dank im Voraus für Eure Antworten.
Gruss, Rico
Hello,
<?php ### guestbook.php ###
@session_start ();
if (isset($_POST['Logout']))
{
@session_destroy ();
header ("Location: PHP.GaestebuchEintraegeLesen.php");
}
elseif (isset($_POST['Login']))
{
$_SESSION['logdata']['Kennung'] = trim($_POST['Kennung']);
$_SESSION['logdata']['Passwort'] = trim($_POST['Passwort']);
$_SESSION['logdata']['logged'] = check_log($_SESSION['logdata']);
}
--------------------------------------------------------------------------------
function check_log($_logdata)
{
$_data = parse_ini_file('../logdaten.dat');
if ( isset($_data['user'][$_logdata['Kennung']])
and ($_data['user'][$_logdata['Kennung ']]== $_logdata['logdata']['Passwort'])
)
{
return true;
}
return false;
}
---------------------------------------------------------------------------------
Aufbau des Logdaten-Files
-------Fileanfang--->
[user]
Hans=PasswortVonHans
Peter=PasswortVonPeter
<------Fileende------
Du musst dann nur noch
if (S_SESSION['logdata']['logged'])
{
## tu was. z.B. include(Formular)
}
else
{
## zurück zur Anmeldeseite
}
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tobias,
Hallo Tom,
Vielen Dank für Eure Rückantworten.
Tom, Deine Anleitung macht einen sehr soliden Eindruck, leider habe ich aber immer noch den Effekt, dass ich nach der Eingabe der Zugangsdaten wieder zum Anmeldeformular gelange.
Gruss, Rico
Hello,
Tom, Deine Anleitung macht einen sehr soliden Eindruck, leider habe ich aber immer noch den Effekt, dass ich nach der Eingabe der Zugangsdaten wieder zum Anmeldeformular gelange.
Da gibts nur ein: Debugging!
Hast Du alle Fehlermeldungen eingeschaltet?
error_reporting(E_ALL);
ini_set('track_errors','1');
$php_errormsg = true;
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Rico,
header ("Location:PHP.GaestebuchEintraegeLesen.php");
das ist kein gültiger header - hinter Location muss eine vollständige URL stehen.
$Kennung = $_REQUEST ["Kennung"];
$Passwort = $_REQUEST ["Passwort"];
session_register ("Kennung");
session_register ("Passwort");
steht bei dir register_globals auf off? Dann kannst du nicht session_register verwenden, sondern musst die Werte direkt $_SESSION zuweisen.
Das Skript von Murdoch findet Ihr auf der Seite http://spotlight.de/nzforen/php/m/php-1093517483-8178.html.
warum fragst du nicht dort nach?
Grüße aus Nürnberg
Tobias
Desweiteren ist es wohl unsinnig, wenn ich die Zugangsdaten
direkt in die Datei eingefügt habe.
Reicht es, wenn ich die Variablen in einer eigenen Datei
definiere und dann über "include" einbinde oder gibt es da noch
bessere Möglichkeiten ?
Ja, das geht per include
Gruß
Martin