kostenloser Webspace werbefrei: lima-city


Brauche Hilfe --> PHP-Passwortschutz geht nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c********e

    Hallo,

    ich möchte meine Website per Passwort schützen. Hierzu habe ich folgendes PHP-Skript genutzt. Jedoch funktioniert die Weiterleitung einfach nicht und ich komm nicht darauf, was ich falsch mache. Ich hoffe hier auf Unterstützung.

    Die Testseite:
    http://www.coolesocke.bplaced.net/test/login.php
    Passwort: test

    Datei: config.php
    In dieser Datei wird das Passwort gespeichert.
    <?php
    // Login - Passwort
      $Passwort = "test";
    ?>


    Datei: login.php
    Hier wird das Passwort eingegeben und überprüft.
    Wenn das Passwort stimmt wird das Cookie gesetzt.
    Haltbarkeit des Cookies = 3600 Sekunden
    <?php
     include("config.php");
     if ($eingabe == $Passwort) {
      setcookie ("meinCookie", $eingabe, time()+3600, "/"); // Cookie setzen
      header ("Location: fehler.php" ); // Weiterleitung
     }
     else {
    ?>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
      <title>Login</title>
     </head>
    <body>
    
    <div align=center>
    <h2>Login</h2>
    
    <?php
     echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post" name="Form">';
     echo '<input type="password" name="eingabe" size="25"> ';
     echo '<input type="submit" value="ok"></form>';
     echo '<script type="text/javascript">document.Form.eingabe.focus();</script>';
    }
    ?>
    
    </div>
    </body>
    </html>


    Datei: beispielseite.php
    Hier wird das Passwort überprüft.
    Wenn das Passwort stimmt wird die Webseite angezeigt,
    andernfalls wird auf die Datei login.php weitergeleitet.
    <?php
     include("config.php");
     if ($meinCookie != $Passwort) {
      header ("Location: login.php"); // Weiterleitung
     }
    ?>
    
    <!-- Inhalt der Webseite -->
    ......


    Quelle: http://www.homepage-total.de/php/webseitenschutz.php

    Beitrag zuletzt geändert: 13.2.2009 18:08:24 von coolesocke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du benutzt $eingabe ohne es vorher zuzuweisen. Das kannst du allerdings nur machen, wenn die Option register_globals eingeschaltet ist.
    Daher ist es immer besser $eingabe=$_POST['eingabe']; zu verwedenen, dann sollte esauf jeden Fall funtkionieren. Das gleiche gilt übrigens auch für Cookies, die über $_COOKIE und Sessions, die über $_SESSION angesprochen werden.
  4. Autor dieses Themas

    c********e

    Und inwiefern muss ich meinen Code jetzt verändern? Einfach überall wo "$eingabe" steht "$eingabe=$_POST['eingabe'];" einsetzen? Oder geht das nicht so einfach?

    Bin für jede Hilfe dankbar.
  5. Du musst einfach vor
    if ($eingabe == $Passwort)

    noch $eingabe=$_POST['eingabe']; einfügen.
  6. Autor dieses Themas

    c********e

    Das hab ich getan, aber es hat sich leider nicht geändert. Die Weiterleitung geht nicht.

    Hier kannst du es testen: Passwort: test
    http://coolesocke.bplaced.net/test/login.php

    So sieht es aus, wie du es mir gesagt hast:
    <?php
     include("config.php");
     $eingabe=$_POST['eingabe'];
     if ($eingabe == $Passwort) {
      setcookie ("meinCookie", $eingabe, time()+3600, "/"); // Cookie setzen
      header ("Location: fehler.php" ); // Weiterleitung
     }
     else {
    ?>


    Beitrag zuletzt geändert: 13.2.2009 18:08:59 von coolesocke
  7. Ich würde sagen, es funktioniert schon. Allerdings leitest du auf fehler.php (oder was auch immer) weiter und dort steht dann:
    <?php
     include("config.php");
     if ($meinCookie != $Passwort) {
      header ("Location: login.php"); // Weiterleitung
     }
    ?>

    Und jetzt liest du nochmal meinen ersten Beitrag und findest heraus, was ich meine :wink:
  8. Autor dieses Themas

    c********e

    Also ich hab deinen Beitrag nochmal durchgelesen. Du meinst jetzt sicher die Option "register_globals" einschalten, richtig? Leider weiß ich nicht wie ich das anstellen soll.

    Beitrag zuletzt geändert: 13.2.2009 20:21:10 von coolesocke
  9. coolesocke schrieb:
    Also ich hab deinen Beitrag nochmal durchgelesen. Du meinst jetzt sicher die Option "register_globals" einschalten, richtig? Leider weiß ich nicht wie ich das anstellen soll.


    Du kannst register_globals nicht einfach anschalten, denn das geht nur in der php.ini - Datei und die kann nur von lima-city geändert werden!
  10. Das kann hier vom User selbst in der Verwaltung an- oder ausgeschaltet werden :thumb:
  11. karpfen schrieb:
    Das kann hier vom User selbst in der Verwaltung an- oder ausgeschaltet werden :thumb:


    Ich hab da nichts gefunden. Wo denn?
  12. Unter Verwaltung>>>Domains
    Dort klickt man die Subdomain an und kommt zu den register_globals
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!