Sessions ! Fehlendes Verständnis ?
Kris
- php
Halli - Hallo
ich weiß nicht woran es liegt aber ich versteh nicht was ich falsch mache ... ich krieg das mit den Sessions einfach nicht so hin wie ich gern hätte :/
es geht nur um die IF Klausel wenn ich PW oder Username vergesse ...
---index.php---
<?
@session_start();
?>
<!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>DJK Roland West - Admin Center</title>
<link href="../css/admin.css" rel="stylesheet" type="text/css">
</head>
<body>
<form action="login.php?=<?print session_id()?>" method="post">
<p><table border="0" cellpadding="0" cellspacing="0" align="center">
<? if ($_SESSION['login_err'] > 0) {echo "<tr>
<td colspan='2' align='center' class='bblack'><p>Benuternamen und Passwort eingeben !</p></td>
</tr>";} ?>
<tr>
<td width="110" class="bblack">Benutzername:</td>
<td><input type="text" size="20" maxlength="30" name="admin_name" class="black"></td>
</tr>
<tr>
<td colspan="2" height="2"></td>
<tr>
<td width="110" class="bblack">Passwort:</td>
<td><input type="password" size="20" maxlength="30" name="admin_pw" class="black"></td>
</tr>
<tr>
<td colspan="2" height="2"></td>
<tr>
<tr>
<td colspan="2" class="bblack" align="right"><input type="submit" value="Anmelden"></td>
</tr>
</table></p>
</body>
</html>
---login.php---
<?
if ($_SESSION['admin_name'] == "" or $_SESSION['admin_pw'] == "") {$login_err=1;
header('Location: index.php?='.session_id().'');exit;}
else
BLABLABLA
?>
danke im vorraus
mfg
KRIS
hi,
ich weiß nicht woran es liegt aber ich versteh nicht was ich falsch mache ...
Was du bei diesem Posting absolut total falsch gemacht hast, sagt dir </faq/#Q-07b>.
gruß,
wahsaga
Moin!
Du initialisierts die Session in beiden Skripten. Ich würde die Session-ID nicht anhängen, sondern als Cookie senden. (Session-Cookies sind unschädlich, die werden bei Browser-beenden gelöscht.
Bei der Anmeldung prüfts Du Benutzername und Passwort und schreibst bei Erfolg den Benutzername in die Session. Genau auf diesen prüfst Du ab sofort in jeder(!) Seite. (Ja, das _musst_ Du machen.)
<?php
session_start() or die('Fataler Fehler: Session konnte nicht initialisiert werden.');
?>
[...]
---index.php---
<?php
if ((!isset ($_SESSION['username'])) || ($_SESSION['username']=='')) {
#Formular anzeigen
?>
<form action="login.php" method="post">
<pre>
Benutzer: <input type='text' name='username'>
Passwort: <input type='password' name='password'>
</pre>
</form>
<?php
}
?>
---login.php---
<?php
session_start() or die('Fataler Fehler: Session konnte nicht initialisiert werden.');
if ((isset($_POST['username'])) && (isset($_POST['password']))) {
# entfernen unerlaubter Zeichen:
$_POST['username'] = ereg_replace('[[1]ÄÖÜäüöß]', '', $_POST['username']);
$_POST['password'] = ereg_replace('[[2]ÄÖÜäüöß]', '', $_POST['password']);
# Deine Prüfung, ob Passwort und Benutzername passen:
if ([#Prüfung des Passwortes ok]) {
$_SESSION['username']=$_POST['username'];
} else {
#abweisen:
header('Location: http://deinserver/index.php');
}
} else {
#abweisen
header('Location: http://deinserver/index.php');
}
?>
--- als Start jeder weiteren beliebigen Seite ---
<?php
session_start() or die('Fataler Fehler: Session konnte nicht initialisiert werden.');
if ((!isset ($_SESSION['username'])) || ($_SESSION['username']=='')) {
header('Location: http://deinserver/index.php');
}
?>
--- / ---
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
VIELEN VIELEN DANK fastix :)