Ankündigung

Einklappen
Keine Ankündigung bisher.

Login Script PW ändern

Einklappen

Neue Werbung 2019

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

  • Login Script PW ändern

    Hallo @all,

    seit langen bin ich auch mal wieder hier

    Aber kommen wir zu meinen Problem:

    Ich habe folgendes Loginsystem in meine Website integriert:

    http://www.tutorials.de/tutorials9684.html

    Funktioniert auch alles hervorragend , jedoch benötige ich noch eine Seite, wo die User ihr Passwort ändern können.

    Ich hab da zwar auch schon so nen bissel rumprobiert, jedoch ohne erfolg

    Über eure Hilfe würde ich mich deshalb sehr freuen.

    Nocenter

  • #2
    und deine frage?

    Kommentar


    • #3
      Zeig doch mal, was Du bisher "rumprobiert" hast

      Kommentar


      • #4
        Ist doch garnicht so schwer:

        Einfach 4 Textboxen aus denn du die Eingaben rausholst.

        1.Box Username
        2.Box altest PW
        3. und 4. Box neues PW

        und nen Ok Button.

        So wen nu eun User die vier Felder alle gefühlt hat und auf OK geklickt hat, fragst du zuhers ab ob feld 3 und 4 identisch sind, wenn ja in der DB nacj dem Username suchen und altest durch neues ersetzen.

        Kommentar


        • #5
          Das oben genannte Tutorial ist der letzte Dreck. Sorry, wenn ich meine Meinung hier so vertrete, aber aus genau diesem Grund habe ich eine Alternative entwickelt:
          http://php-info.org/ftopic82.html

          Auch nicht das Optimum, aber meines Erachtens um Längen besser als das von Dir erwähnte.

          Zu Deinem Problem.
          http://tut.php-q.net/login-self.html

          Schau mal da rein. Das ist das Prinzip.
          Du musst halt eine Seite erstellen, welche ein Formular enthält, indem man das Passwort ändern kann.

          Kleines Beispiel ..
          PHP-Code:
          <?php

              session_start
          ();
              
              if(!
          array_key_exists('dummy'$_SESSION)) {
                  
          $_SESSION['dummy'] = true;
                  
                  
          /**
                   * Testdaten in Session speichern
                   */
                  
          $_SESSION['userID'] = 32;
              }
              

              if(
          array_key_exists('submit'$_POST)) {
                  
                  
          /**
                   * Datenbankverbindung erstellen und das Passwort zur UserID auslesen.
                   * Das Passwort befindet sich letztendlich in der Variablen $pwd
                   */
                  
          $db = new MySQL();
                  
                  
          $sql 'SELECT pwd FROM tabelle WHERE id = %s';
                  
          $sql sprintf($sql$_SESSION['userID']);
                  
                  
          $db->query($sql);
                  
          $obj $db->fetchObject();
                  
          $pwd $obj->pwd;
                  
                  if(
          $pwd == $_POST['old'] && $_POST['new1'] == $_POST['new2']) {
                      
                      
          $sql "UPDATE tabelle SET pwd = '%' WHERE id = %s";
                      
          $sql sprintf($sql$_POST['new1'], $_SESSION['userID']);            
                      
          $db->query($sql);
                  } 
                  
              }
              else {
                  
          printf('<form action="%s" method="post">
                              <input type="text" name="old" value="Absenden" />

                              <input type="text" name="new1" value="Absenden" />

                              <input type="text" name="new2" value="Absenden" />

                              <input type="submit" name="submit" value="Absenden" />

                          </form>'

                          
          $_SERVER['PHP_SELF']);
              }
              
          ?>
          Das hab ich jetzt nicht getestet.

          Grüße Ben.
          [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

          Kommentar


          • #6
            @Ben
            Jeden sagt nunmal nicht jedes Script zu :wink:

            So hier seht ihr mal, was ich probiert habe, naja jetzt nicht gleich motzen, ich weis es ist ein pures kaos^^ und funktionieren mag es auch nicht

            PHP-Code:
            <?php

            function connect()
            {
                
            $conmysql_connect('localhost','user','pass') or die(mysql_error());
                 
            mysql_select_db('test',$con) or die(mysql_error());
            }


            function 
            check_user($name$pass)
            {
                
            $sql="SELECT UserId
                FROM users
                WHERE UserName='"
            .$name."' AND UserPass=MD5('".$pass."')
                LIMIT 1"
            ;
                
            $resultmysql_query($sql) or die(mysql_error());
                if ( 
            mysql_num_rows($result)==1)
                {
                    
            $user=mysql_fetch_assoc($result);
                    return 
            $user['UserId'];
                }
                else
                    return 
            false;
            }

            function 
            change_pass($userid$password)
            {
                
            $sql="UPDATE users SET UserPass=MD5('".$password."') WHERE UserId='".$userid;
                 
            mysql_query($sql);
            }
            connect();


            echo 
            '<label>Username</label><input name="username" type="text" id="username">
            '
            ;
            echo 
            '<label>Altes Passwort: </label><input name="oldpass" type="password" id="oldpass">
            '
            ;
            echo 
            '<label>Neues Passwort: </label><input name="password" type="password" id="password">
            '
            ;
            echo 
            '<label>Neues Passwort (wiederholen): </label><input name="passwordh" type="password" id="passwordh">
            '
            ;
            echo 
            '<input name="passaendern" type="submit" id="passaendern" value="Passwort ändern">';

            error_reporting(E_ALL);
            $_POST['username'] = $username;
            $_POST['oldpass'] = $oldpass;
            $_POST['password'] = $password;
            $_POST['passwordh'] = $passwordh;
            $userid check_user($username$oldpass);
            if(
            check_user($username$oldpass)==false) {
            echo 
            'Deine Daten waren nicht korrekt';
            } else
            {
            if(
            $password==$passwordh) {
            change_pass($userid$password);
            echo 
            'Dein Passwort wurde geändert, du musst dich neueinloggen!';
            logout();
            }
            else {
            echo 
            'Passwort wiederholung falsch!';
            }
            }

            ?>
            Hier könnt ihr es euch mal anschauen:

            http://www.msoft24.de/test/edit.php

            Was soll ich nun machen

            Kommentar


            • #7
              Zitat von nocenter
              @Ben
              Jeden sagt nunmal nicht jedes Script zu
              Dir ist aber bewusst, dass ich da oben ein Script gepostet habe, welches Du mal testen sollst, ja?

              Du willst nix konfigurieren? Dann schau ich mir Dein Script nicht an.

              So einfach ist das
              [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

              Kommentar


              • #8
                Ich hab doch garnicht gesagt, das ich mir deins nicht anschaue, jedoch war ich nur noch nicht so weit...

                Also erstmal muss ich wegen der anpassung nachfragen:

                PHP-Code:
                $db = new MySQL("localhost""test""user""pass"); 
                das ist doch erstmal richtig, oder

                So und dann, wie weis er, um welchen user es sich handelt, bei dem er das PW ändern soll?

                http://www.msoft24.de/test/test.php

                Da hab ich dein Script ...

                So ganz schlau werde ich aus dem ganzen leider nicht

                Kommentar


                • #9
                  Und nun magste nix mehr sagen

                  Kommentar


                  • #10
                    Also ich bin hier totaler anfänger. Könnte nicht mal einer so nen text zusammen fassen, das es funzt. Ich habe mir mal die seiten für die loginscripts durchgelesen, und alles was ich dachte das es richtig ist auf eine seite gebracht. Doch funzen tu da noch lange nichts. Vieleicht kann einer der so ein script hat es ja mal in einer Zip datei unterbringen. Ich glaube dann ist es noch nicht in HTML umgewandelt worden.

                    Würde nämlich auch gerne eins haben, komme aber garnicht damit zurecht.

                    Kommentar


                    • #11
                      Zitat von nocenter
                      Und nun magste nix mehr sagen
                      Ehrlich gesagt: Nö *gg*

                      Aber nun gut.

                      Anstatt meiner Methoden und der Klasse musst Du natürlich manuell vorgehen, d.h., dass Du mit mysql_connect() und mysql_select_db() erstmal die Datenbank ansprechen und Dich mit ihr verbinden musst.

                      So. Ist das geschehen, dann tauscht Du das $db->query() aus meinem Codeschnipsel einfach mal gegen mysql_query(). Beachte bitte, dass man mysql_query() nur mit mysql_error() verwenden sollte.
                      Vor allem in der Entwicklungsphase bewirkt das Wunder.

                      So. Dann gibt es noch die "fetch-Funktionen".
                      Ich nutze mysql_fetch_object(), das ist aber eigentlich egal.

                      Meine Codepassage wäre umgeschrieben so etwas hier:
                      PHP-Code:
                      <?php

                           
                      // ...
                           
                      $obj mysql_fetch_object($res);
                           
                      $pwd $obj->pwd;

                      ?>
                      Das erklärt eigentlich meinen Quellcode. Würde ich erstmal behaupten.
                      Jetzt versuch das erstmal zu verstehen und wenn Du danach noch Fragen hast .. dann frag halt.

                      Zitat von Marian
                      Ich habe mir mal die seiten für die loginscripts durchgelesen, und alles was ich dachte das es richtig ist auf eine seite gebracht. Doch funzen tu da noch lange nichts.
                      Das in meinem Tutorial beschriebene Login-Script funktioniert. Basta!

                      Eventuell liegt der Misserfolg an der von mir fett hinterlegten Aussage?!

                      Zitat von Marian
                      Vieleicht kann einer der so ein script hat es ja mal in einer Zip datei unterbringen. Ich glaube dann ist es noch nicht in HTML umgewandelt worden.
                      Hö?
                      Also hier:
                      http://php-info.org/ftopic82-1.html
                      findest Du die von mir im Tutorial beschriebenen Dateien.

                      HTML hat hier eigentlich auch nicht wirklich was mit zu tun. Das braucht man nur für die Darstellung des Login-Formulars.

                      Eventuell werde ich zusätzlich zu dem eigentlich Login-Script noch ein weiteres Tutorial schreiben, welches sich mit dem Abändern des eigenen Userpasswortes befasst.
                      Aber mehr als das, was ich hier geschrieben habe .. ist das ja eigentlich auch nicht

                      Nunja. Bei weiteren Fragen .. her damit.

                      Grüße Ben.
                      [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                      Kommentar


                      • #12
                        Ja. Deine seite habe ich mir ja bereits angesehen befor ich den beitrag geschreiben habe, doch die frage ist, ob ich das einfach alles in ein PHP doc reinbringe oder ob ich mehrere seiten anlege. Und ob die anlegung eine bestimmte reihenfolge braucht. Da komme ich irgendwie nicht klar. Vorallem wenn datenbanken ins spiel kommen. Sonst gehts bei mir eigendlich noch.

                        Kommentar


                        • #13
                          Zitat von Marian
                          die frage ist, ob ich das einfach alles in ein PHP doc reinbringe oder ob ich mehrere seiten anlege.
                          Ähm. Das sind mehrere Dateien .. wie es doch eigentlich aufgrund der Dateinamen, die die Codeabschnitte begleiten klar sein sollte. Nunja.

                          Zitat von Marian
                          Und ob die anlegung eine bestimmte reihenfolge braucht.
                          1. Datenbank anlegen und mit Daten füllen
                          2. Alle Dateien hochladen
                          3. Loginformular aufrufen.

                          Fertg.

                          Zitat von Marian
                          Vorallem wenn datenbanken ins spiel kommen.
                          Schau Dir mal das hier an:
                          http://tut.php-q.net/mysql.html

                          Und das hier ist auch zu empfehlen:
                          http://ffm.junetz.de/members/reeg/DSP/

                          Da findest Du viele Hilfen bzgl. der Kommunikation mit Datenbanken.

                          Grüße Ben.
                          [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                          Kommentar


                          • #14
                            Zitat von Ben
                            Zitat von nocenter
                            Und nun magste nix mehr sagen
                            Ehrlich gesagt: Nö *gg*

                            Aber nun gut.
                            Danke das du doch noch weiterhilfst

                            So ich hab versucht deins so gut wie möglich zu verstehen.

                            PHP-Code:
                            <?php

                               session_start
                            ();

                               if(!
                            array_key_exists('dummy'$_SESSION)) {
                                  
                            $_SESSION['dummy'] = true;

                                  
                            /**
                                   * Testdaten in Session speichern
                                   */
                                  
                            $_SESSION['userID'] = 32;
                               }


                               if(
                            array_key_exists('submit'$_POST)) {

                                  
                            /**
                                   * Datenbankverbindung erstellen und das Passwort zur UserID auslesen.
                                   * Das Passwort befindet sich letztendlich in der Variablen $pwd
                                   */

                                  
                            $db = new MySQL("localhost""test""user""pass");

                                  
                            $sql 'SELECT pwd FROM tabelle WHERE id = %s';
                                  
                            $sql sprintf($sql$_SESSION['userID']);

                                  
                            $db->query($sql);
                                  
                            $obj mysql_fetch_object($res);
                                  
                            $pwd $obj->pwd;


                                  if(
                            $pwd == $_POST['old'] && $_POST['new1'] == $_POST['new2']) {

                                     
                            $sql "UPDATE tabelle SET pwd = '%' WHERE id = %s";
                                     
                            $sql sprintf($sql$_POST['new1'], $_SESSION['userID']);
                                     
                            $db->query($sql);
                                  }

                               }
                               else {
                                  
                            printf('<form action="%s" method="post">
                                                <input type="text" name="old" value="altes PW" />

                                                <input type="text" name="new1" value="neues PW" />

                                             <input type="text" name="new2" value="PW wiederholen" />

                                            <input type="submit" name="submit" value="Absenden" />

                                            </form>'
                            ,
                                            
                            $_SERVER['PHP_SELF']);
                               }

                            ?>
                            Fatal error: Cannot instantiate non-existent class: mysql in /home/msoft24/test/test.php on line 22

                            Tja das mit der Db Verbindung stimmt nicht

                            Ich hatte es auch so mal probiert:

                            PHP-Code:
                            <?php
                            mysql_connect
                            ('localhost','user','pass'); 
                                 
                            mysql_select_db('test')
                            ?>
                            jedoch auch ohne erfolg

                            Ich steh jetzt leider etwas auffen schlauch

                            Kommentar

                            Lädt...
                            X