TS: Beispiel für Login

Beitrag lesen

Hello,

es gibt unterschiedliche Wege zum Ziel ;-)

Bau mal als erstes eine Seite "login.php", in der dein Login-Formular enthalten ist. Und bemühe dich dabei möglichst, HTML und PHP so gut es geht zu trennen.

Die Zugangsdaten

<?php   ### .htlogindata.php ### utf-8 ### ÄÖÜäöü

define('PASSWORD', 'streng Geheim');

?>

Das Login-Formular

<?php   ### login.php ### utf-8 ### ÄÖÜäöü

header('Content-Type: text/html; Charset=utf-8');
mb_internal_encoding('UTF-8');
session_start();

## Password-Konstante laden
require_once('.htlogindata.php');
$message = 'Abgemeldet';

if (isset($_POST['btn']['logout']))
{
    $_SESSION['logintime'] = false;
}
elseif (isset($_POST['btn']['login']))
{
    if (isset($_POST['data']['password']))
    {
        ## eventuell führende und anhängende Whitespaces wegtrimmen...
        if (PASSWORD ==  trim($_POST['data']['password']))
        {
            ### Login-Zeitpunkt in der Session merken
            $_SESSION['logintime'] = time();
            
            ### Weiterleiten zur geschützten Seite
            header('Location: myProtectedSite.php');
            exit; 
        }    
        else
        {
            $message = 'Passwort ist falsch. Bitte wiederholen';
            ### hier Logging einbauen für Fehlversuche
            #error_log( ... );
        }    
    }
}
else
{
    $message = 'Bitte Passwort eingeben';
}    
###############################################################################
# html output
###############################################################################
?>
<html>
    <head>
        <title>Passworteingabe</title>
    </head>
    <body>
        <p><?php echo htmlspecialchars($message); ?></p>
        <form action="login.php" method="post">
            <p><input type="password" name="data[password]"></p>
            <p><button type="submit" name="btn[login]">Anmelden</button></p>
        </form>
    </body>
</html>    

Die Seite, die nur mit Passwort benutzt werden darf

<?php   ### myProtectedSite.php ### utf-8 ### ÄÖÜäöü

header('Content-Type: text/html; Charset=utf-8');
mb_internal_encoding('UTF-8');
session_start();
$time = time();

if (isset($_SESSION['logintime']) && (($time - $_SESSION['logintime']) < 360))
{
   $_SESSION['logintime'] = $time;  ## Nachtriggern
}
else
{
   header('Location: login.php');
   exit;
}

###############################################################################
# html output
###############################################################################
?>
<html>
    <head>
        <title>Meine geheime Seite</title>
    </head>
    <body>
     	<h1>Geheime Hinweise</h1>

		<h2>Logout:</h2>
		<form action="login.php" method="post">
		    <button type="submit" name="btn[logout]">Wieder Abmelden</button>
		</form>

		<h2>Geodaten</h2>
		<p>Hier steht das nächste Ziel für das Spiel:</p>  
    	<div> Blah Geodaten Blubb </div>
      <div> und noch mehr BlahBlah </div>
	</body>
<html>	

Das ist jetzt ein minimalistisches Beispiel (getestet).
HTML bitte selber hübsch machen mit CSS!

Wenn Du die Möglichkeit dazu hast, sollte die Datei mit dem Passwort außerhalb der Document Root stehen. Dann muss sie aber auch entsprechend referenziert werden...

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
0 90

HTML mit Passwort aber ohne User Eingabe!

Tazzi
  • html
  • php
  • programmiertechnik
  1. 0
    TS
    • html
    • php
    • sicherheit
    1. 0
      einsiedler
  2. 0
    Matthias Apsel
    1. 0
      Tazzi
      1. 1
        JürgenB
        1. 0
          TS
          1. 1
            JürgenB
            1. 0
              TS
              1. 0
                Camping_RIDER
                1. 0
                  TS
                  1. -1
                    Camping_RIDER
                    1. 1
                      1unitedpower
                      1. 0
                        Camping_RIDER
                        1. 1
                          Gunnar Bittersmann
                          • zitat
                          1. -1
                            Camping_RIDER
                  2. 1
                    Camping_RIDER
                    1. 2
                      JürgenB
                      1. 0
                        TS
                        • html
                        • php
                        • webstandards
                        1. 1
                          Camping_RIDER
                        2. 0
                          Camping_RIDER
            2. 0
              1unitedpower
              1. 0
                JürgenB
                1. 0
                  1unitedpower
  3. 0
    Tazzi
    1. 0
      TS
      1. 0
        Tazzi
      2. 0
        TS
        • html
        • korrektur
        • php
        1. 0
          Tazzi
          1. 0

            Beispiel für Login

            TS
            1. 0
              Tazzi
              1. 0
                Rolf B
                1. 0
                  TS
                  • formulare
                  • html
                  • php
                  1. 0
                    Rolf B
            2. 0
              1unitedpower
              1. -1
                pl
                1. 0
                  1unitedpower
                  1. 0
                    pl
                    1. 0
                      pl
                    2. 0
                      1unitedpower
                      1. 0
                        pl
                        1. 0
                          1unitedpower
                          1. 0
                            pl
                2. 0
                  Christian Kruse
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. 0
                        TS
                        • apache
                        • php
                        • webserver
                        1. 0
                          dedlfix
                          • html
                          • php
                          • webserver
                      2. 0
                        pl
                    2. 0
                      Mitleser
                      1. -1
                        pl
                        1. 0
                          Mitleser
                          1. 0
                            pl
                            1. 0
                              Mitleser
                              1. 0
                                pl
                                1. 0
                                  Mitleser
                                  1. 0
                                    pl
                                    1. 0
                                      Mitleser
                                      1. 0
                                        pl
                                        1. 0
                                          Christian Kruse
                                          1. 0
                                            pl
                                            1. 0
                                              Mitleser
                                              1. 0
                                                pl
                                                1. 2
                                                  Tabellenkalk
                                                  1. 0
                                                    TS
                                                    • korrektur
                                                    • projekt
                                                  2. 0
                                                    Gunnar Bittersmann
                                                    • menschelei
                                            2. 0
                                              Christian Kruse
                                              1. 0
                                                pl
                                                1. 0
                                                  Mitleser
                                                  1. 0
                                                    pl
                                                    1. 0
                                                      Mitleser
                                                      1. 0
                                                        pl
                                                2. 0
                                                  Christian Kruse
                                    2. 0
                                      1unitedpower
                                      1. 0
                                        pl
                                      2. 1
                                        TS
                                        • fachbegriff
                                        1. 1
                                          1unitedpower
                                          1. 0
                                            TS
              2. 0
                Camping_RIDER
                1. 1
                  1unitedpower
                  1. 4
                    Christian Kruse
                    • programmiertechnik
                    • sicherheit
                    1. 0
                      TS
                      • php
                      • programmiertechnik
                      • sicherheit
                      1. 1
                        Christian Kruse
                  2. 0
                    Matthias Apsel
                    • sonstiges
                    1. -1
                      Camping_RIDER
                2. 0
                  TS
                  • datenbank
                  • php
                  • sicherheit
                  1. 0
                    Christian Kruse
                    1. 0
                      TS
                      1. 1
                        Christian Kruse
  4. 0
    pl