Fehler bei einer Userabfrage

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

  • Fehler bei einer Userabfrage

    Hallo Jungs,

    ich habe wieder ein kleines Problem:

    und zwar folgendes ich habe eine benutzerabfrage geschrieben, dazu habe ich zwei files benutzt. Zum einen die loginmaske.php und die abfrage.php. So jetzt bekomme ich immer einen meiner meinung nach richtigen Fehler ich habe bloß keine Ahnung wie ich den vermeiden kann!?!

    hier der Code der beiden Files:

    abfrage.php
    PHP-Code:
    <?

        $server= mysql_connect("localhost", "", "");
        $SQLString = "SELECT * FROM user where Name = '$loginname'";
        $ergebnis = mysql_db_query("onlinegame", $SQLString, $server);
        
        $ps = mysql_result($ergebnis,"Name",2);
        $logname = mysql_result($ergebnis,"Name",1);
        
        
            



    if ( $ps == $passwd & $logname == $loginname)
    {
        echo "erfolgreich";
    }
    else
    {
        echo "Fehler";
    }
    und hier der HTML-Code der eingabemaske
    (ich wusste hier nicht ob es auch sowas wie gibt von daher ganz normal gepostet sorry)




    <html>

    <head>

    <title> Konfigurationsmenü</title> <!-- Titel der Seite -->


    </head>
    <body>
    <form action="abfrage.php" method="post">
    <p class="bold">Konfigurationsmenü</p>
    <p class="normal">Benutzername:&nbsp;
    <input name="loginname" type="text" tabindex="1" size="20" maxlength="20">
    </p>
    <p class="normal">Kennwort:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input name="passwd" type="password" tabindex="2" size="20" maxlength="20">
    <p>
    <input name="reset" value="Zurücksetzen" type="reset" tabindex="4">
    <input name="ok" value="OK" type="submit" tabindex="3">
    </form>


    </div>

    </body>
    </html>


    Wenn Username mit dem aus der DAtenbank übereinstimmt und wenn das Password stimmt dann geht es. Wenn ich jedoch einen Namen eingebe, den es in der Datenbank nicht gibt bringt er mir die Fehler


    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in C:\WAMPP2\htdocs\abfrage.php on line 7

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in C:\WAMPP2\htdocs\abfrage.php on line 8
    Zuletzt geändert von Toast; 25.03.2003, 19:50.

  • #2
    is ja logisch, wenn es den user nich gibt, kriegst du ja keinen datensatz zurückgeliefert, kannst also auch keinen abfragen.

    da es aber imho eh besser is, name und passwort auf einmal abzufragen, würde sich folgendes empfehlen
    PHP-Code:
    $result=mysql_query("SELECT count(*) as OK FROM user WHERE name = '$loginname' AND password='$password'");
    $row=mysql_fetch_array($result,MYSQL_FETCH_ASSOC);
    if (
    $row['OK']==0)
      die(
    'Böses Mensch!<p/>Erst anmelden!'); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      mrhappiness danke die abfrage funktioniert

      aber das eigentliche Problem löse ich damit nicht oder??

      Danke Marcus
      Zuletzt geändert von Toast; 24.03.2003, 21:56.

      Kommentar


      • #4
        if ( $ps == $passwd & $logname == $loginname) ...

        Benutz mal $_POST[]
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Hi nochmal,

          so es läuft jetzt, nur habe ich jetzt das problem, das er jeweils bei der richtigen Eingabe sowie bei der falschen Eingabe weiterleitet! Kann das jemand mal anschauen??




          PHP-Code:

          <?

              $server= mysql_connect("localhost", "", "");
              
              
              
          $suche="SELECT count(*) as OK FROM user WHERE Username = '$loginname' AND Password='$password'";    
              
          $result=mysql_db_query("db",$suche,$server);
          $row=mysql_fetch_array($result,MYSQL_FETCH_ASSOC);
          if ($row['OK']==0)
              {
                  Header("Location: main.php");
              }
            
           else
               {
                   echo "falsch";
               }
               ?>
          Vielleicht findet jemand den Fehler!?!

          Marcus
          Zuletzt geändert von Toast; 25.03.2003, 19:48.

          Kommentar


          • #6
            mach mal zwischewn $suche="SELECT COUNT..." und der abfrage ein echo $suche;

            ich trau mich fast zu wetten, dass er die werte für usernamen und passwort nicht anzeigt.

            aber MelloPie hat die Lösung schon geschrieben
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              sorry jetzt kapiere ich nichts mehr. wo muss ich das von MelloPie einbauen,

              wenn ich ein echo ausbauen bekomme ich den Username und das Password das ich in der Maske eingeben habe

              Marcus

              Kommentar


              • #8
                was kriegst du denn angezeigt?
                genau!

                speicherst du das passwort verschlüsselt in der datenbank?

                poste mal das was echo $suche ausspuckt
                kopier es mal und setz die anfrage von hand mit phpmyadmin ab
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  also das bringt mir das echo$suche

                  SELECT count(*) as OK FROM user WHERE Username = 'Toastbrot' AND Password='1520'

                  und das ist dass was ich in die Loginmaske tippe!!!
                  Nein das password wird noch nicht verschlüsselt gespeichert

                  Marcus

                  Kommentar


                  • #10
                    und wenn du das in dem sql-fenster von phpmyadmin eingibst?
                    was kommt dann raus?
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Wenn ich ich die Werte eingebe, die auch in der DB vorhanden sind kommt als Ergebnis OK = 0. Wenn ich falsche eingaben mache kommt OK = 0!?!

                      Marcus

                      Kommentar


                      • #12
                        dann stimmen die werte nich!

                        leg mal einen neuen eintrag an: benutzername=foo passwort=bar und teste damit. liegt evtl. an der groß-kleinschreibung oder du hast irgendwo noch ein leerzeichen zuviel
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Ok jetzt bringt er mir eine 1 wenn ich es richtig eingebe! Wenn ich es falsch eingebe eine null. ist schon mal ganz gut denke ich oder???

                          Kommentar


                          • #14
                            is schon mal nich schlecht

                            jetzt musst du nur noch rausfinden was er gegen Toastbrot/1520 hat...
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              war ein kleiner fehler von mir in der eingabe ) so sorry aber kannst du mir jetzt noch unten bei der abfrage helfen?? Du meintest ich soll das hier
                              PHP-Code:
                               $ps == $password $logname == $loginname
                              benutzen. Aber da ich noch nicht so lange php mache habe ich jetzt keine ahnung wo ich das hinschreiben muss. Was meinte er mit versuche es mal mit post???

                              Marcus

                              Kommentar

                              Lädt...
                              X