Kris: Sessions ! Fehlendes Verständnis ?

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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. 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

    Starten der Session:

    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
    }

    end if

    ?>

    ---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 ---

    das kann als Include verbaut werden....

    <?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®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

    1. :alnum: ↩︎

    2. :alnum: ↩︎

    1. VIELEN VIELEN DANK fastix :)