Benötige Hilfe für einfachen Passwortschutz

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Benötige Hilfe für einfachen Passwortschutz

    Hallo,

    gleich vornweg: Bin absoluter Laie - ohne jegliche php-Kenntnisse!

    Für einen Zugangsschutz möchte ich folgendes - funktionierendes - Script verwenden:

    Einloggseite:

    <html>
    <form action="geheim.php" method="post">
    <input type="password" name="pw">
    <input type="submit" value="submit">
    </form>
    </html>


    Datei: geheim.php

    <?php
    if($HTTP_POST_VARS[pw] == "geheim") {
    echo "Das Passwort ist richtig";
    } else {
    die("Das Passwort ist falsch");
    }
    ?>

    Das Script funzt super, nur möchte ich mehreren - max. 30 - Usern den Zugang gewähren.

    Wie kann ich statt nur "geheim" weitere - vom User selbst gewählte - Passwörter verwalten/einbinden, um die Datei geheim.php aufzurufen?

    Nach dem Motto: WENN <Passwort> = "geheim" ODER "geheim1" ODER "geheim3" ... "geheim29" DANN rufe geheim.php auf.

    Habe gelesen, dass man mit "arrays" oder Userdatenverwaltung in einer Text??-datei machen könnte.
    Mysql ist in meinem Tarif beim Webhoster leider nicht möglich.

    Bitte um unkomplizierte Hilfe

    Gruß und Danke wspl
    gleich vornweg: Bin absoluter Laie - ohne jegliche php-Kenntnisse!

  • #2
    Das machst du oben in geheim.php:
    PHP-Code:
    $userdata = array('Name1' => 'pass1'
        
    'Name2' => 'pass2',
        .... ); 
    Dann noch ein <input type="text" name="user"> zum Formular hinzu

    Und dann änderst du deine if... Zeile in der geheim.php wie folgt
    PHP-Code:
    if (isset($_POST['user'], $_POST['pw'], $userdata[$_POST['user']]) && 
        
    $userdata[$_POST['user']] == $_POST['pw']) { 
    Allerdings ist das nicht grade ein eleganter Weg. Es fängt schon damit an, dass man bei jedem Seitenaufruf das Passwort übermitteln will. Lies dich bei Gelegenheit mal in Sessions ein.
    ich glaube

    Kommentar


    • #3
      Lies dich bei Gelegenheit mal in Sessions ein.
      Und verwende doch gleich eine Datenbank zur Verwaltung der User

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Vielen Dank erstmal bis hierher.

        Original geschrieben von jahlives
        Und verwende doch gleich eine Datenbank zur Verwaltung der User

        Wie müßten die Userdaten in einer Textdatei strukturiert sein, und wie würde dann die Zeile im php-Script aussehen?
        PS: Mysql geht nicht
        Zuletzt geändert von wspl; 22.10.2007, 13:15.

        Kommentar


        • #5
          dafür schaust du dir am besten mal fopen() und konsorten an.

          ich will dich noch darauf hinweisen, dass ich es nicht für gut halte, passwörter etc im klartext in einer txt datei zu schreiben. da du sehr eingeschränkte möglichkeiten hast (vermute ich mal wegen deiner aussage, mysql sei nicht möglich) gehe ich davon aus, dass du die txt datei auch nur irgendwo im htdocs verzeichnis lagern musst. also zugänlich für jeden, der rausfindet, wo sie liegt...
          **********
          arkos
          **********

          Kommentar


          • #6
            also zugänlich für jeden, der rausfindet, wo sie liegt...
            er kann ja nur Hashwerte der PWs speichern. Und dann noch eine .htaccess, die Requests nach dieser Datei auf die Fehlerseite umleitet.
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Original geschrieben von jahlives
              er kann ja nur Hashwerte der PWs speichern. Und dann noch eine .htaccess, die Requests nach dieser Datei auf die Fehlerseite umleitet.
              Er kann es auch einfach in die PHP-Datei reinschreiben.
              ich glaube

              Kommentar


              • #8
                Original geschrieben von jahlives
                er kann ja nur Hashwerte der PWs speichern. Und dann noch eine .htaccess, die Requests nach dieser Datei auf die Fehlerseite umleitet.
                wir waren noch nicht so weit, wie er es umgegeht wollt vorerst nur auf die "gefahr" hinweisen...
                **********
                arkos
                **********

                Kommentar


                • #9
                  Original geschrieben von ministry
                  Er kann es auch einfach in die PHP-Datei reinschreiben.
                  Da wird die Verwaltung etwas schwierig, v.a. wenn der Benutzer sein Passwort auch noch seler ändern können soll. Dann doch lieber als separate, wie von jahlives empfohlen, geschützte Textdatei.
                  Und als Strukturen sind verschiedene möglich. Ich würde ganz simpel proZeile
                  Code:
                  username:passwort-hash
                  nehmen, und dazu zwei Funktionen schreiben, eine zum die Datei in einen assoziativen Array zu lesen:
                  PHP-Code:
                  function get_passw(){
                      
                  $ptab file('verstecktesVerzeichnis/passwortfile');
                      foreach(
                  $ptab as $ele){
                          list(
                  $user$pw) = explode(':'$ele);
                          
                  $passw_tab['$user'] = $pw;
                      }
                      return 
                  $passw_tab;

                  dann kannst du das Passwort nachher direkt mit
                  Code:
                  $user = $_POST['user'];
                  if($_POST[pw'] == $passw_tab["$user"]){...
                  vergleichen. Und eine Funktion zum Schreiben eines Eintrags:
                  PHP-Code:
                  function set_passw($usr$passw$neu false){
                      if(
                  $neu){
                          
                  $fp fopen('verstecktesVerzeichnis/passwortfile''a');
                          
                  fprintf($fp"%s:%s\n"$usrsha1($pw)); 
                      }
                      else{
                          
                  $pwtab get_passw();
                          
                  $pwtab["$usr"] = sha1($pw);
                          
                  $fp fopen('verstecktesVerzeichnis/passwortfile''w');
                          foreach(
                  $pwtab as $key => $val){
                              
                  fprintf($fp"%s:%s\n"$usr$val); 
                          }
                      }
                      
                  fclose($fp);

                  Gruss
                  H2O

                  Kommentar

                  Lädt...
                  X