LoginScript

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

  • LoginScript

    Hallo also im folgenden findet ihr meinen PHP Login Script mit Datenbank ( MySql).

    Nun zu meinem Problem:

    Ich kann mich mit dem Registrierungsformular registrieren kein Problem.So mit Passwortvergleich (PW1=PW1) und Benutzernachfrage ob es diesen Namen schon in der Datenbank gibt!

    Dieses geht alles wunderbar!

    Nun kommt der Fehler!

    Wenn ich zum Loginfenster komme, und ich mich Anmelde, zeigt er mir "BENUTZERDATEN NICHT VORHANDEN"!

    Ich weis nicht weiter!

    Habe den Script 3 mal neu geschrieben und immer geht es noch nicht!

    Komisch!

    Hoffe ihr schaut mal drüber und findet evt den Fehler!

    login
    PHP-Code:
    <?php
    session_start
    ();
    ?>

    <?include("mysql.inc")?>
    <?php


    $benutzer 
    $_POST["benutzer"];
    $passwort md5($_POST["passwort"]);

    $abfrage "SELECT benutzer, passwort FROM login WHERE benutzer LIKE '$benutzer' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->passwort == $passwort)
        {
        
    $_SESSION["benutzer"] = $benutzer;
        echo 
    "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
        }

    ?>
    anmelden

    PHP-Code:
    <?include("mysql.inc")?>
    <?php


    $benutzer 
    $_POST["benutzer"];
    $passwort $_POST["passwort"];
    $passwieder $_POST["passwieder"];

    if(
    $passwort != $passwieder OR $benutzer == "" OR $passwort == "")
        {
        echo 
    "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
        exit;
        }
    $passwort md5($passwort);

    $result mysql_query("SELECT id FROM login2 WHERE benutzer LIKE '$benutzer'");
    $menge mysql_num_rows($result);

    if(
    $menge == 0)
        {
        
    $eintrag "INSERT INTO login2 (benutzer, passwort) VALUES ('$benutzer', '$passwort')";
        
    $eintragen mysql_query($eintrag);

        if(
    $eintragen == true)
            {
            echo 
    "Benutzername <b>$benutzer</b> wurde erstellt. <a href=\"login.html\">Login</a>";
            }
        else
            {
            echo 
    "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>";
            }


        }

    else
        {
        echo 
    "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>";
        }
    ?>
    geheim

    PHP-Code:
    <?php
    session_start
    ();
    ?>

    <?php
    if(!isset($_SESSION["benutzer"]))
       {
       echo 
    "Bitte erst <a href=\"login.html\">einloggen";
       exit;
       }
    ?>
    Hier kommen sie zum angemeldeten bereich

  • #2
    Re: LoginScript

    Original geschrieben von biohazard360ft
    Wenn ich zum Loginfenster komme, und ich mich Anmelde, zeigt er mir "BENUTZERDATEN NICHT VORHANDEN"!
    Und wo in deinem Code sehen wir die Stelle, wo diese Meldung ausgegeben wird?


    Btw: Du kannst ruhig normale Interpunktion benutzen, brauchst nicht jeden Satz mit einem Ausrufezeichen beenden.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Benutzername und/oder Passwort waren falsch


      das ist die richtige Stelle. Entschuldige!

      Kommentar


      • #4
        Dann mach mal Kontrollausgaben der vom Script verwendeten Variablen - und schau nach, ob die stimmig sind.


        Btw: Über SQL Injection solltest du dich auch mal dringend informieren.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Wie bitte wahsaga? SQL Injection?

          Die Variablen stimmen alle!


          Ich bitte euch helft mir... muss das zu meinem Abschlussprojekt hinzufügen aber das will nicht!
          Zuletzt geändert von biohazard360ft; 13.03.2007, 16:28.

          Kommentar


          • #6
            Original geschrieben von biohazard360ft
            Wie bitte wahsaga? SQL Injection?
            Was soll die blöde Nachfrage?
            Die Variablen stimmen alle!
            Vermutung deinerseits, oder wirklich kontrolliert?


            Kontrollausgabe generierter Query-String, test über alternatives Frontend wie PMA?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Schreib mal eine Ausgabe hier rein
              PHP-Code:
              if($row->passwort == $passwort)
                  {
                  
              $_SESSION["benutzer"] = $benutzer;
                  echo 
              "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
                  }
              else
                  {
                  echo 
              $row->passwort.'<br />'.$passwort;
                  exit;
                  echo 
              "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
                  } 
              Sind diese beiden Ausgabe VOLLKOMMEN identisch ?

              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


              • #8
                Hey Tobi !

                Ja die sind identisch ! Ich sehe zumindestens keinen fehler.

                Kommentar


                • #9
                  Der fehler ist im Sql Stament

                  Du schreibst und liest aus einer anderen Tabelle
                  Da kann das Nie übereinstimmen.


                  PHP-Code:
                  SELECT benutzerpasswort FROM login WHERE benutzer LIKE '$benutzer' LIMIT 1
                  SELECT id FROM login2 WHERE benutzer LIKE 
                  '$benutzer'
                  INSERT INTO login2 (benutzerpasswortVALUES ('$benutzer''$passwort')"; 
                  Und Fällt dir da was auf Schreiben tust in login2 und beim Login script liest dann aus der Tabelle login aus.
                  Zuletzt geändert von splasch; 13.03.2007, 17:58.

                  Kommentar


                  • #10
                    splash danke dir du warst meine Rettung danke!

                    Kommentar


                    • #11
                      Da ich ich auch demnächst mit einem Login-System befassen werde, wollt ich nur fragen wie ich in meinen Abfragen formulieren sollte.

                      Lieber so
                      PHP-Code:
                      $abfrage "SELECT benutzer, passwort FROM login WHERE benutzer LIKE '$benutzer';"
                      oder so
                      PHP-Code:
                      $abfrage "SELECT benutzer, passwort FROM login WHERE benutzer = '$benutzer';"

                      achso @biohazard360ft: was dagegen wenn ich bei deinem script ein wenig abschreibe?

                      Kommentar


                      • #12
                        Nö kannst es ruhig benutzen habe kein problem damit!


                        Allerdings habe ich jezt noch ein Problem.

                        Und zwar folgendes:

                        Wenn der User auf die HP also den Index geht ist er ja noch nicht ANGEMELDET.

                        Dieses ist er ja erst wenn er sich Einloggt!

                        Nun soll das dann auf der Startseite stehn.

                        Bei nicht eingeloggt: Sie sind nicht eingeloggt!

                        Bei erfolgreichen einloggen soll dann statt "Sie sind nicht eingeloggt" Hallo ( dann der Benutzername) und ein Link der heist "Meine Daten".

                        Hier habe ich nun mein Script !

                        Was tut es?

                        Beim Anmelden zeigt er folgendes:

                        Hallo (Name) Sie sind nicht eingeloggt

                        Er soll aber nur Hallo (Name) zeigen was ist mein Fehler?
                        Ich vermute das ich einen Denkfehler habe... aber ich komme nicht drauf.



                        PHP-Code:
                                <?include("mysql.inc")?>
                                <?php session_start();
                                if(
                        session_id())
                                {
                                 echo 
                        "Hallo $benutzer";
                                 echo 
                        "<a href=\"andern.php\">Meine Daten</a>";
                                 }
                                 
                                
                                echo 
                        " Sie sind nicht Eingeloggt!";
                                
                        session_destroy(); 
                            
                                
                        ?>

                        Hatte es auch schon so versucht:

                        PHP-Code:
                                <?include("mysql.inc")?>
                                <?php session_start();
                                if(
                        session_id("benutzer"))
                                {
                                 echo 
                        "Hallo $benutzer";
                                 echo 
                        "<a href=\"andern.php\">Meine Daten</a>";
                                 }
                                 
                                
                                echo 
                        " Sie sind nicht Eingeloggt!";
                                
                        session_destroy(); 
                            
                                
                        ?>
                        Hier könnt ihr es auch selbst testen:
                        Testlogin

                        Kommentar


                        • #13
                          Original geschrieben von w-shadow


                          Lieber so
                          PHP-Code:
                          $abfrage "SELECT benutzer, passwort FROM login WHERE benutzer LIKE '$benutzer';"
                          [/B]
                          Würde dir das empfehlen!

                          Kommentar


                          • #14
                            PHP:--------------------------------------------------------------------------------
                            $abfrage = "SELECT benutzer, passwort FROM login WHERE benutzer LIKE '$benutzer';";
                            Kanst du das auch begründen?
                            Du weiß aber schon was Like bei Sql bedeuted oder.
                            Verwend ein = ist sicherere.

                            Übrings ist das ganze Login script nicht sicher (Sql injektion unsw.)

                            Kommentar


                            • #15
                              if(session_id())
                              Was soll den das darstellen ist doch keine Abfrage und kann net funktionieren.
                              Der weiß ja garnicht was er überhaupt prüfen soll im if Teil

                              Mach dich mal schlau wie man If anweisungen schreibt.
                              Und verwende Else sonst werden immer dann beide ausgeführt.

                              hier die lösung zu deinen Problem

                              PHP-Code:
                              if(isset($_SESSION['benutzer'])){

                              // anweisung teil
                              // ende if
                              Else{

                              }

                              // oder du schreibst

                              if ($_SESSION['benutzer']==True) { 
                              Zuletzt geändert von splasch; 15.03.2007, 23:35.

                              Kommentar

                              Lädt...
                              X