[Frage] login page

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

  • #31
    ah, vielen dank!!!!

    jetzt noch eine frage:
    bei der ffunction check_user($name, $pass) benötige ich jetzt die variablen in der klammer ($name, $pass) nicht mehr?

    Kommentar


    • #32
      Original geschrieben von ClausBiercher

      jetzt noch eine frage:
      bei der ffunction check_user($name, $pass) benötige ich jetzt die variablen in der klammer ($name, $pass) nicht mehr?
      Ich befürchte du hast es noch nicht verstanden...
      Ich würde deine Funktion check_user() dahingehend ändern, dass sie genau das tut, was ich dir in meinen letzten Postings zu verdeutlichen versucht habe. Und auch ihr müssen dann natürlich die beiden Parameter übergeben werden, denn ohne Benutzernamen und Passwort geht's ja nicht.
      Nieder mit der Camel Case-Konvention

      Kommentar


      • #33
        du hast recht ich bin einfach zu blöd um das zu verstehen!!
        hier mal was ich draus gemacht hab:

        <?
        $server = "localhost";
        $user = "root";
        $pass = "";
        $datenbank = "test";
        $conn = @mysql_connect($server, $user, $pass);

        mysql_select_db($datenbank, $conn);

        function check_user($name, $pass) {
        $l_username = $_POST['username'];
        $l_password = $_POST['password'];


        $result = mysql_query("SELECT customers_password
        FROM customers
        WHERE customers_email_address = '" . mysql_real_escape_string($l_username) . "'");
        || die(mysql_error());

        // existiert der benutzername?
        if (mysql_num_rows($result) == 1)
        {
        $md5_password = mysql_result($result, 0);
        }
        else
        {
        // benutzer existiert nicht
        }

        if (tep_validate_password($l_password, $md5_password))
        {
        // herzlichen glueckwunsch
        }
        else
        {

        }



        }
        function tep_validate_password($plain, $encrypted) {
        if (tep_not_null($plain) && tep_not_null($encrypted)) {
        // split apart the hash / salt
        $stack = explode(':', $encrypted);

        if (sizeof($stack) != 2) return false;

        if (md5($stack[1] . $plain) == $stack[0]) {
        return true;
        }
        }

        return false;
        }
        ?>

        ehrlich gesagt bin ich total verwirrt!!
        ich will doch nur das benutzer aus einer datenbank sich authentifizieren können und dann zu einer seite weitergeleitet werden,
        bitte erlöse mich von meinen bösen

        Kommentar


        • #34
          ganz ehrlich hut ab vor denen die wissen wie man mit php umgeht, ich kann es nicht und werd es wohl auch nie können, aber ich muss dieses blöde login hinter mich bringen und wäre überaus glücklich wenn ich da eine fertige funktion bekommen könnte

          Kommentar


          • #35
            Tja, dann bezahlst du am besten einen von denen, vor denen du so gern den Hut ziehen möchtest, dafür dass er dir eine fertige Lösung entwickelt.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #36
              was soll das denn kosten?

              Kommentar


              • #37
                PHP-Code:
                function check_user($name$pass) {
                    
                $l_username $_POST['username'];
                    
                $l_password $_POST['password'];

                    
                // ...

                Das ist Quatsch. Du bekommst die beiden Parameter (Benutzername bzw. E-Mail-Adresse und Passwort) ja bereits übergeben. Das habe ich in meinem Posting unter anderen Umständen geschrieben. Du kannst die beiden $l_username- und $l_password-Zeilen also löschen und musst stattdessen mit $name und $pass arbeiten. So also auch in der SQL-Anfrage aus $l_username $name und aus $l_password $pass machen. Und dann möchte ich gerne von dir hören, was passiert, wenn du den Code ausführst. Bitte mit error_reporting(E_ALL) und genauen Fehlermeldungen bzw. -beschreibungen.
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #38
                  Dank dir!!nochmal von vorn: dies ist meine login.php:

                  <form method="post" action="login.php">
                  <label>Benutzername:</label><input name="username" type="text">
                  <br>
                  <label>Passwort: </label><input name="userpass" type="password" id="userpass">
                  <br>
                  <input name="login" type="submit" id="login" value="Einloggen">
                  </form>
                  <?
                  include 'auth.php';

                  if (isset($_POST['login']))
                  {
                  $userid=check_user($_POST['username'], $_POST['userpass']);
                  if ($userid!=false)
                  echo $result;
                  else
                  echo $result;
                  }

                  ?>

                  und dies ist meine auth.php:

                  <?
                  $server = "localhost";
                  $user = "root";
                  $pass = "";
                  $datenbank = "test";
                  $conn = @mysql_connect($server, $user, $pass);

                  mysql_select_db($datenbank, $conn);

                  function check_user($name, $pass) {


                  $result = mysql_query("SELECT customers_password
                  FROM customers
                  WHERE customers_email_address = '" . mysql_real_escape_string($name) . "'");

                  if (mysql_num_rows($result) == 1)
                  {
                  $md5_password = mysql_result($result, 0);
                  }
                  else
                  {
                  // benutzer existiert nicht
                  }

                  if (tep_validate_password($pass, $md5_password))
                  {
                  // herzlichen glueckwunsch
                  }
                  else
                  {

                  }



                  }
                  function tep_validate_password($plain, $encrypted) {
                  $stack = explode(':', $encrypted);

                  if (sizeof($stack) != 2) return false;

                  if (md5($stack[1] . $plain) == $stack[0]) {
                  return true;
                  }

                  }
                  ?>

                  so, wenn ich jetzt die login ausführe und ein benutzer angebe den es in der daten bank gibt refesht sich die seite und sonst passiert nix

                  Kommentar


                  • #39
                    ups, sorry hatte die falsche login gepostet:
                    hier die richtige:
                    <form method="post" action="login.php">
                    <label>Benutzername:</label><input name="username" type="text">
                    <br>
                    <label>Passwort: </label><input name="userpass" type="password" id="userpass">
                    <br>
                    <input name="login" type="submit" id="login" value="Einloggen">
                    </form>
                    <?
                    include 'auth.php';

                    if (isset($_POST['login']))
                    {
                    $userid=check_user($_POST['username'], $_POST['userpass']);
                    if ($userid!=false)
                    echo 'Ihre Anmeldedaten waren korrekt!';
                    else
                    echo 'Ihre Anmeldedaten waren nicht korrekt!';
                    }

                    ?>

                    Kommentar


                    • #40
                      Bitte die hier geposteten Code-Teile mit den entsprechenden von dir ersetzen und ausprobieren. Und künftig die PHP-Tags des Forums benutzen -> Syntax-Highlighting.
                      PHP-Code:
                      if (isset($_POST['login'])) 
                      {
                          
                      $userid check_user($_POST['username'], $_POST['userpass']); 
                          if (
                      $userid !== false)
                          {
                              echo 
                      "1\n";
                          }
                          else
                          {
                              echo 
                      "0\n";
                          }
                      }

                      function 
                      check_user($name$pass)
                      {
                          
                      $result mysql_query("SELECT customers_password
                                          FROM customers
                                          WHERE customers_email_address = '" 
                      mysql_real_escape_string($name) . "'");
                              
                          if (
                      mysql_num_rows($result) == 1)
                          {
                              
                      $md5_password mysql_result($result0);
                          }
                          else
                          {
                              die(
                      "benutzer existiert nicht");
                              
                      // return false;
                          
                      }

                          if (
                      tep_validate_password($pass$md5_password))
                          {
                              return 
                      true;
                          }
                          else
                          {
                              die(
                      "passwort falsch");
                              
                      // return false;
                          
                      }

                      Nieder mit der Camel Case-Konvention

                      Kommentar


                      • #41
                        boa, jetzt funktioniert es!!!!!!!!!!!!!!!!!!!!!!

                        ich danke allen die mir trotz meiner unwissenheit so geduldig geholfen haben.
                        1000 dank!!!!!!!

                        ich freu mich, endlich kann ich das them abhaken

                        Kommentar


                        • #42
                          Und jetzt am besten noch die ganzen die("Fehlermeldung"); und die beiden Slashes (//) vor den return false; entfernen.
                          Dann sieht es so aus:
                          PHP-Code:
                          else
                          {
                              return 
                          false;
                          }

                          // statt

                          else
                          {
                              
                          // return false;

                          OffTopic:

                          Kommst du rein zufällig aus Berlin? Falls ja, dann bist du mir jetzt ein Bier schuldig.

                          Nieder mit der Camel Case-Konvention

                          Kommentar


                          • #43
                            nein, ich komm aus stuttgart, aber wenn ich in berlin bin kann man sicher darüber beim bier nochmal quatschen.

                            mal was anderes:
                            ist es möglich über php telnet commandos abzusetzen?

                            Kommentar

                            Lädt...
                            X