Login mit Hilfe von PHP und mySQL

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

  • #16
    Ok bevor ich wieder etwas falsch verstehe aus unzurechendem Wissen über diese Sprache.

    Du meinst ich soll schaun ob:

    $_POST[username]
    $_POST[userpass]

    das ist was ich erwarte das es ist?

    wenn nicht, würde ich dich bitten, mir anhand des Codes ein ungefähres anzeichen zu geben was du meinst.

    Danke Richard

    Kommentar


    • #17
      Ja, was denn sonst?

      Es heisst uebrigens $_POST['username'], sofern du nicht irgendwo eine Konstante mit dem Namen username definiert hast.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #18
        OK

        habe dies mit folgendem Ergebniss überprüft:

        Ihre Anmeldedaten waren nicht korrekt!string(7) "Richard" string(9) "[Password]"

        Die Daten stimmen mit jenen welche ich in der Regestration verwendet habe überein.

        Wenn ich eine Vermutung loswerden dürfte:

        Kann es an der Verschlüsselung liegen? kann man md5 auf mehrere Arten ver- bzw entschlüsseln?
        Also ich meine dies so das der Code welchen ich für die Reg verwende es auf eine Variante verschlüsselt und der Code welcher Vergleicht es auf eine andere Art entschlüsselt?
        kenn mich mit dem ganzen nicht so wirklich aus wie man merkt^^

        Kommentar


        • #19
          Nein, MD5 ist MD5. Gleiche Eingabedaten, gleiche Ausgabe.


          Dann waere als naechstes zu Pruefen, ob der Fehler im Script, oder in den Daten liegt.
          Mache also eine Kontrollausgabe der zusammengesetzten SELECT-Abfrage ($sql), und teste sie per Copy&Paste ueber phpMyAdmin o.ae.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #20
            var_dump ($sql)

            gibt null aus egal ob Testuser oder von mir angelegter user.

            Was daran soll ich in php Myadmin überprüfen?

            Kommentar


            • #21
              Jetzt denk aber bitte mal wenigstens ein bisschen selber mit ...

              $sql wird in der Funktion check_user mit einem Wert befuellt. Dass du die Kontrollausgabe also direkt dahinter setzt, und nicht irgendwo anders hin, sollte doch auch einem Newbee einleuchten.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #22
                danke für den gedanklichen Anstoss^^

                Hab den Fehler nun localisiert^^.

                Und zwar wenn ich das Passwort über meine Regestration auf md5 verschlüssele kommt eine ander kombination von buchstaben und Zahlen als wenn das der Code der für die Überprüfung da ist das PW in md5 umwandelt.

                Beispiel:
                Passwort = richi

                In der Datenbank wird es als: d41d8cd98f00b204e9800998ecf8427e gespeichert.
                Die überprüfung jedoch prüft auf: 0456afab2a3c87fe92961cf0bfe8ccde

                Jetzt müsste ich nur noch wissen warum^^

                Der Fehler müsste hier iwo versteckt sein:

                PHP-Code:
                if ($submit == "Absenden") {
                    
                        if (
                $username !== '' && $userpas !== '' && $usermail !== '') {
                        
                        
                $db=mysql_connect('localhost' ,'generaljack_03' ,'richi666') or die('Could not connectet: '.mysql_error());
                        
                mysql_select_db('generaljack_03') or die('Could not select database'); 
                        
                $user=$username;
                        
                $pass=$userpas;
                        
                $email=$usermail;
                    ---->
                $sql "INSERT INTO `users` (`UserName`, `UserPass`, `UserMail`) VALUES ('$user', '".md5($pass)."', '$email')"
                        
                $exe mysql_query($sql); 
                        
                #echo($exe);
                        #echo($sql);
                        
                }
                        else {
                        echo(
                "<font color='#FFR0000'>Bitte alle ANGABEN ausf&uuml;en!</font><br/>");
                    }; 

                Kommentar


                • #23
                  Original geschrieben von Ritschie
                  In der Datenbank wird es als: d41d8cd98f00b204e9800998ecf8427e gespeichert.
                  Das entspricht MD5 eines Leerstrings.

                  Also enthaelt die Variable, die du an der Stelle in deine Query einbaust, wohl nichts.

                  Also wiederum - Kontrollausgaben machen ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #24
                    Hab den Fehler.

                    $pass wurde nicht richtig definiert

                    hab in den werten jetzt statt $pass, $userpass eingetragen jetzt funkts.

                    Danke für die Hilfe wahsaga.

                    grüsse Jack

                    Kommentar


                    • #25
                      Hallo,
                      ich versucht genau das wie Ritschie zu machen: Eine Registrierung für dieses Tutorial. Weil ich aber sehr wenig Ahnung von php hab funzt bei mir gar nix. Kann mir vielleicht jemand den kompletten Code posten?
                      Vielen Dank für die Hilfe!

                      Kommentar


                      • #26
                        @sebbb: Wenn du ein fertiges Script haben willst, dann such dir gezielt eins.
                        Tutorials sind zum Lernen gedacht. Wer sich aber gleich auf wenig Ahnung "beruft" - anstatt an diesem Zustand was zu ändern, in dem er bspw. erst mal ein Grundlagen-Tutorial (wie bspw. dieses) durcharbeitet - bei dem ist wenig Lernwille erkennbar.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #27
                          Hi wahsaga,
                          vielen dank für deine fachmännische Beurteilung meines Lernverhaltens.
                          Ich lerne am besten, wenn ich bereits Fertiggestelltes studieren und nachzuvollziehen kann. Ansonsten hätte ich mir auch nicht die Mühe gemacht, das Tutorial zu lesen und an meine Zwecke anzupassen. Da Ritschie offensichtlich schon die passende Lösung hat, bitte ich nochmals darum (oder um Hilfe statt Belehrungen).

                          Kommentar


                          • #28
                            Das Forum agiert nach dem Motto "Hilfe zur Selbsthilfe". Wenn du nichts tutst, kann auch keiner helfen

                            Kommentar


                            • #29
                              ok, ich hab die ganze zeit schon probiert, es klappte nicht und dann hab ich hier ins forum geschrieben. Hier ist mein Stand:

                              <?php
                              echo '
                              <form method="post" action="register.php">
                              Benutzername:<br /><input name="username" type="text"><br>
                              Passwort:<br /><input name="userpass" type="password" id="userpass"></p>
                              Passwort wiederholen:<br /><input name="userpass2" type="password" id="userpass2"></p>
                              E-Mail:<br /><input name="usermail" type="text" id="usermail"></p>
                              <input name="register" type="submit" value="Benutzer anlegen">
                              </form>
                              ';
                              if(!isset($_POST['username']) || $_POST['username'] == ""){
                              echo 'Bitte einen Benutzernamen angeben!';}
                              if(!isset($_POST['usermail']) || $_POST['usermail'] == ""){
                              echo 'Bitte eine E-Mailadresse angeben!';}
                              if(!isset($_POST['userpass']) || $_POST['userpass'] == ""){
                              echo 'Bitte ein Passwort angeben!';}
                              if($_POST['userpass'] != $_POST['userpass2']){
                              echo 'Passwörter stimmen nicht überein!';}
                              else{
                              gucken ob username noch frei ist
                              dann in datenbank schreiben
                              dann entweder Erfolg!
                              oder Es trat ein Fehler auf!
                              }
                              ?>

                              Kommentar


                              • #30
                                Beispielcode bitte mit [php]-Tags formatieren, das erhöht die Lesbarkeit.


                                Und dann bitte lernen, brauchbare Problembeschreibungen zu verfassen - "klappt nicht" ist keine solche.
                                I don't believe in rebirth. Actually, I never did in my whole lives.

                                Kommentar

                                Lädt...
                                X