Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Login-Script

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

  • Scriptsuche [Erledigt] Login-Script

    hallo zusammen, hoffe ihr könnt mir weiterhelfen.

    ich bräuchte eure Hilfe

    admin.php:
    PHP-Code:
    <?php session_start(); ?>
    <html>
    <head>
    <title>Admin</title>
    </head>
    <body>
    <center>
    <?php
    include('pass.php');

    if((
    $_POST["user"] == $user && $_POST["pass"] == $pass) or ($_SESSION['logged'] == 'admin')) {
        
    $_SESSION['logged'] = 'admin';
        
        
        echo 
    'Willkommen!';
        
        
    }
    else {
        echo 
    '<h4>Adminbereich</h4>
        <form name="login" action="'
    .$_SERVER['PHP_SELF'].'" method="post">
        <fieldset style="width: 180px;">
        <legend><b>Bitte Login-Daten eingeben</b></legend>
        <label>Benutzername: <br><input type="text" name="user" size="28"><br></label>
        <label>Kennwort: <br><input type="password" name="pass" size="28"><p></label>
        <input type="submit" value="Login" style="float:right;">
        </fieldset>
        </form>'
    ;
    }
    ?>
    </center>
    </body>
    </html>
    pass.php:
    PHP-Code:
    <?php
    $user 
    "admin";
    $pass "nimda";
    ?>
    Ich möchte einige Dinge einbauen, die ich aber nur aufzählen kann, da ich nicht so gute Kenntnisse über Login-Scripte habe.

    # das Passwort mittels md5 verschlüsseln
    # Vorschläge, wie man ein Passwort gegebenfalls noch anders oder sicherer verschlüsseln kann
    # einen Logout-Button, der die session zerstört

    ich hoffe ihr könnt mir weiterhelfen, egal wie (würde mich auch revanchieren)

    ich bedanke mich schon mal für jede Hilfe

    mfg x-m


  • #2
    EDIT: Anscheinend doppelt gepostet!

    Kommentar


    • #3
      admin.php:
      PHP-Code:
      <?php session_start(); ?>
      <html>
      <head>
      <title>Admin</title>
      </head>
      <body>
      <center>
      <?php
      include('pass.php');

      // Logout wurde geklickt
      if (isset($_REQUEST['logout'])) {
        
      $_SESSION['logged'] = 'gast';
        
      // oder
        
      unset($_SESSION['logged']);
       }


      if((
      $_POST["user"] == $user && sha1($_POST["pass"]) == $pass) or ($_SESSION['logged'] == 'admin')) {
        
      $_SESSION['logged'] = 'admin';
          
        echo 
      'Willkommen! <a href="admin.php?logout=1">logout</a>';
          
      }
      und in die Passwortdatei gehören die Passwörter dann sha1 verschlüsselt...


      und eigentlich sollte man auch erstmal prüfen ob $_POST Daten verfügbar sind z.B. mit if (isset($_POST['user'])&&isset($_POST['pass']))

      und doppelte Anführungszeichen sollte man nicht benutzen, außer man möchte Steuerungszeichen (z.B. \r\n) interpretieren (warum auch immer, weil für \r\n kann man lieber PHP_EOL verwenden)

      Gruß

      Kommentar


      • #4
        Beim Posten bitte bbCode für Quellbeispiele verwenden und Code einrücken.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          @phpsecretary:
          viele dank schon mal für deine Hilfe

          hätte da eine Frage zur Verschlüsselung, besser gesagt, weiß ich nicht wirklich wie ich das machen soll, da man ja md5 nicht entschlüsseln kann und so die Passwörter nicht vergleichen kann. Hat jemand schon mal ähnliches gemacht und könnte mir den code zur Verfügung stellen?

          gruß x-m

          Kommentar


          • #6
            Doch, man kann sie „verschlüsselt“ (gehasht) vergleichen.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              so mein script schaut nun so aus:
              PHP-Code:
              <?php session_start(); ?>
              <?php
              include('pass.php');

              //Logout
              if (isset($_REQUEST['logout'])) {
                  
              $_SESSION['logged'] = 'gast';
                  unset(
              $_SESSION['logged']);
              }

              if((isset(
              $_POST['user']) && isset($_POST['pass'])) && ($_POST['user'] == $user && $_POST['pass'] == $pass) or ($_SESSION['logged'] == 'admin')) {
                  
              $_SESSION['logged'] = 'admin';
                  
                  
                  echo 
              '<a href="admin.php?logout=true">logout</a>';
                  
                  
              }
              else {
                  echo 
              '<h4>Adminbereich</h4>
                  <form name="login" action="'
              .$_SERVER['PHP_SELF'].'" method="post">
                  <fieldset style="width: 180px;">
                  <legend><b>Bitte Login-Daten eingeben</b></legend>
                  <label>Benutzername: <br><input type="text" name="user" size="28"><br></label>
                  <label>Kennwort: <br><input type="password" name="pass" size="28"><p></label>
                  <input type="submit" value="Login" style="float:right;">
                  </fieldset>
                  </form>'
              ;
              }
              ?>
              wo baue ich nun die verschlüsselung und den vergleich ein?
              (habe schon mehreres probiert, kenne mich auf dem gebeit aber noch nicht so gut aus)

              Kommentar


              • #8
                Nur so nebenbei:
                Was gefällt dir an dem Script (den link den ich dir gepostet habe) nicht?

                Gruß

                Kommentar


                • #9
                  Zitat von 1988UR Beitrag anzeigen
                  Nur so nebenbei:
                  Was gefällt dir an dem Script (den link den ich dir gepostet habe) nicht?
                  habe das script schon probiert, bin auch so zufrieden damit, aber es sind einfach zu viele dateien, die ich nicht benötige und außerdem arbeitet es mit einer datenbank, die ich vermeiden möchte

                  gruß

                  Kommentar


                  • #10
                    PHP-Code:
                    /* Das richtige Admin-Passwort als md5 verschlüsselt */
                    $passwort e22a63fb76874c99488435f26b117e37;

                    /* Da man das richtige Passwort nicht entschlüsseln kann, */
                    /* einfach erst das eingebene Passwort verschlüsseln und dann vergleichen! */
                    if ( md5($passworteingabe) == $passwort )
                    {
                        
                    // Passwort richtig!

                    Kommentar


                    • #11
                      so das script schaut nun so aus

                      admin.php:
                      PHP-Code:
                      <?php session_start(); ?>
                      <html>
                      <head>
                      <title>Admin</title>
                      </head>
                      <body>
                      <center>
                      <?php
                      include('pass.php');

                      //Logout
                      if (isset($_REQUEST['logout'])) {
                          
                      $_SESSION['logged'] = 'gast';
                          unset(
                      $_SESSION['logged']);
                      }

                      if((isset(
                      $_POST['user']) && isset($_POST['pass'])) && ($_POST['user'] == $user && md5($_POST['pass']) == $password) or ($_SESSION['logged'] == 'admin')) {
                          
                      $_SESSION['logged'] = 'admin';
                          
                          
                          
                          echo 
                      '<a href="admin.php?logout=true">logout</a>';
                          
                          
                      }
                      else {
                          
                      //Login-Formular
                          
                      echo '<h4>Adminbereich</h4>
                          <form name="login" action="'
                      .$_SERVER['PHP_SELF'].'" method="post">
                          <fieldset style="width: 180px;">
                          <legend><b>Bitte Login-Daten eingeben</b></legend>
                          <label>Benutzername: <br><input type="text" name="user" size="28"><br></label>
                          <label>Kennwort: <br><input type="password" name="pass" size="28"><p></label>
                          <input type="submit" value="Login" style="float:right;">
                          </fieldset>
                          </form>'
                      ;
                      }
                      ?>
                      </center>
                      </body>
                      </html>
                      pass.php:
                      PHP-Code:
                      <?php
                      $user 
                      'admin';
                      $pass 'nimda';
                      $password md5($pass);
                      ?>
                      danke für eure hilfe

                      gruß x-m

                      Kommentar


                      • #12
                        Also klappt jetzt alles? Dann markiere den Thread doch als "Erledigt"!

                        Achja... Das Passwort in Klartext zu speichern und dann zu verschlüsseln ist unsinnig. Verschlüssel es doch mit einem Generator (z.B. dem hier) und speicher dann den Hash (und nicht den Klartext) direkt in die Variable $pass , dann brauchst du es danach nicht mehr mit md5 zu verschlüsseln, und man kann es nicht sofort ablesen.

                        Kommentar


                        • #13
                          danke für den tipp php2go

                          Kommentar

                          Lädt...
                          X