Warum geht das nicht? [Achtung: Anfänger!!]

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

  • Warum geht das nicht? [Achtung: Anfänger!!]

    also, wahrscheinlich ist das leicht zu beantworten:

    ich habe nach dem Tutorial auf http://www.php-resource.de einen Login usw. gebastelt. aber immer wenn ich mich einloggen will, kommt folgende Fehlermeldung:

    "Warning: Supplied argument is not a valid MySQL result resource in verify.php on line 17"

    und in dieser zeile steht:

    $zeileholen = mysql_fetch_array($result,MYSQL_ASSOC);
    mysql_close($conn);

    stimmt da was nicht in der zeile oder braucht ihr noch mehr von der datei?

    Creepy

    Irgendwann mal steht hier eine Signatur

  • #2
    was steht bei $result?
    das MYSQL_ASSOC kannste auch weglassen, das is standard.

    Kommentar


    • #3
      hmm,

      @bohni das stimmt nicht, BOTH ist Standard, durch MYSQL_ASSOC erhögst du die Performance weil nur ein assoziatives Array angelegt wird. Man kann alternativ den Befehl mysql_fetch_assoc nehmen anstatt mysql_fetch_array ab php4.0.3

      @Creepy
      In das Tut hat sich leider in der ersten Version ein Fehler eingeschlichen Da ist wohl in dem mysql_connect Befehl noch $bduser eingetragen, das musst du in $dbuser umwandeln. Leider viel mir dieser Vertipper nicht auf weil ich immer ohne Passwort und User arbeite und da ist es egal weil beide Variablen auf "" stehen. Ich denke mal dass es daran liegt.

      Kommentar


      • #4
        dass hatte ich zwar auch dort zu stehen, aber der fehler besteht immer noch. ich schreibe jetzt mal die komplette Fehlermeldung auf:

        Warning: Supplied argument is not a valid MySQL result resource in verify.php on line 17
        Sorry, aber dieses Passwort passt nicht zum Usernamen !


        jetzt mal einige zeilen die um die "fehler"zeile stehen (zeile 17 ist markiert)

        mysql_select_db($dbname,$conn);
        $query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";
        $result = mysql_query($query,$conn);
        $result = mysql_query("SELECT pass, level FROM zugriff WHERE name = '$username'",$conn);
        17: $zeileholen = mysql_fetch_array($result,MYSQL_ASSOC);
        mysql_close($conn);
        if ($zeileholen["pass"] <> $passwort)
        {
        die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !");
        }
        if (!$zeileholen)
        {
        die ("Sorry, aber dieser Name ist leider nicht bekannt !");
        }

        Irgendwann mal steht hier eine Signatur

        Kommentar


        • #5
          eigentlich tritt dieser fehler auf, wenn die SELECT-Abfrage kein (gültiges) Ergebnis liefert!
          Untersuche doch mal die tabellennamen usw. und , ob vorher in der variable $username ein wert drin steht!... und dieser auch wirklich in der Datenbank steht.
          Zum testen füge folgende zeile hinter der mysql_query-zeile ein: echo mysql_error($result);

          Viel Glück

          Tgod
          ---^_-(oOOo)-_^---
          ° Tgod °
          ------------------
          www.twintech.de

          Kommentar


          • #6
            Ich bin mir nicht 100%ig sicher aber muß es nicht statt
            query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";

            so heißen?
            query = "SELECT pass, level FROM zugriff WHERE name = '$username'";


            Außerdem empfehle ich dir, immer mal wieder ein echo zum debuggen einzubauen...
            Grüße
            Petra

            _____________________________
            Urlaub nur hier:
            http://www.landhaus-drosselweg.de

            Kommentar


            • #7
              '$username'"; geht nur wenn auch der komplette String in " " eingeschlossen ist.

              ist der String mit ' ' eingeschlossen muss der String aufgeteilt werden.

              hier im Beispiel würde ich den Vorschlag von Sonnenschein verwenden.

              cu
              berni

              PS: das ist aber nicht der Fehler!

              php-Entwicklung | ebiz-consult.de
              PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
              die PHP Marktplatz-Software | ebiz-trader.de

              Kommentar


              • #8
                Langsam dreh ich durch!

                Ich hab die Zeile in query = "SELECT pass, level FROM zugriff WHERE name = '$username'"; verwandelt. wie angemerkt war der fehler immer noch da....

                was bedeutet in der zeile eigentlich zugriff ???

                query = "SELECT pass, level FROM zugriff WHERE name = '$username'";
                Irgendwann mal steht hier eine Signatur

                Kommentar


                • #9
                  zugriff ist der Tabellenname

                  diese Tabelle hast Du hoffentlich auch angelegt.

                  Kommentar


                  • #10
                    ich hab das so aus dem tutorial kopiert und da wurde eine tabelle namens adminzone erzeugt.

                    Creepy
                    Irgendwann mal steht hier eine Signatur

                    Kommentar


                    • #11
                      habe mir gerade das Tut angesehen, die DB heißt adminzone und die Tabelle zugriff.

                      am besten du siehst dir das tut noch einmal richtig an, legst die Tabelle richtig an und dann teste es noch einmal, wenn es dann immer noch nicht funzt melde dich noch mal.

                      Kommentar


                      • #12
                        ok, mach ich...

                        Creepy
                        Irgendwann mal steht hier eine Signatur

                        Kommentar


                        • #13
                          und schon wieder ein neues prob....

                          ich habe alles nochmal genau durchgelesen und habe meinen fehler gefunden. ich hatte die tabelle tatsächlich nicht zugriff genannt.

                          jetzt das prob: ich habe in der datenbank unter name: test und unter pass: passwort geschrieben aber wenn ich mich so einloggen will, dann kommt "Sorry, sie haben sich wohl nicht eingeloggt, oder?"

                          Wieso?

                          ihr könnt das hier testen: http://mitglied.tripod.de/blackhawkdown/login.html

                          Creepy
                          Irgendwann mal steht hier eine Signatur

                          Kommentar


                          • #14
                            ja schön aber wo ist das Stückchen Quellcode?

                            Hast du mit echo "gedebuggt"?
                            Grüße
                            Petra

                            _____________________________
                            Urlaub nur hier:
                            http://www.landhaus-drosselweg.de

                            Kommentar


                            • #15
                              wie genau mach ich das?

                              hier der ganze code, aus der verify.php:

                              <?php
                              session_start();
                              include('var.inc.php');
                              if ((!isset($username)) OR (!isset($passwort)))
                              {
                              die ("Sorry, aber ohne Name bzw. Passwort geht hier nichts !");
                              }
                              $conn = @mysql_connect($dbserver,$dbuser,$dbpass);
                              if (!$conn)
                              {
                              die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !");
                              }
                              mysql_select_db($dbname,$conn);
                              $query = "SELECT pass, level FROM zugriff WHERE name = '$username'";
                              $result = mysql_query($query,$conn);
                              $zeileholen = mysql_fetch_array($result,MYSQL_ASSOC);
                              mysql_close($conn);
                              if (!$zeileholen)
                              {
                              die ("Sorry, aber dieser Name ist leider nicht bekannt !");
                              }
                              if ($zeileholen["pass"] <> $passwort)
                              {
                              die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !");
                              }
                              $level = $zeileholen["level"];
                              session_register('username');
                              session_register('level');
                              header ("Location:admin.php");
                              ?>

                              so, und weil die fehlermeldung von der admin.php kommt (der indexseite vom geschützten bereich):

                              <?php
                              session_start();
                              ?>
                              <html>
                              <head>
                              <title>Adminzone</title>
                              </head>
                              <BODY BGCOLOR="#FFFFFF" style="font-family: verdana, helvetica, arial" topmargin="0" leftmargin="0" vlink="#0000FF" alink="#0000FF" link="#0000FF">
                              <?php
                              if (!session_is_registered('username'))
                              {
                              die ("Sorry, aber sie haben sich wohl nicht eigeloggt, oder ?");
                              }
                              echo "Hi ".$username." !";
                              echo "<br> Dein Userlevel ist ".$level;
                              ?>
                              <br>
                              <input type="button" name="logout" value="logout" onClick="location.href='logout.php'">
                              </body>
                              </html>


                              das ist jetzt genug text

                              Creepy

                              Irgendwann mal steht hier eine Signatur

                              Kommentar

                              Lädt...
                              X