Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit meiner Datenbank!?!

Einklappen

Neue Werbung 2019

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

  • Problem mit meiner Datenbank!?!

    Hallo alle miteinander,

    ich habe ein Problem mit meiner Datenbank. Unswahr habe ich diesen Code:

    PHP-Code:
    <?php
          session_start
    ();
          include(
    'var.inc.php'); // Wichtige Variabeln wie db name und pass werden hier abgerufen
          
    $username $_POST["username"];
          
    $passwort $_POST["passwort"];
          
    $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 accounts 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");
          
    ?>
    Der spuckt diesen Syntax Error raus:

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /users/db/www/test/verify.php on line 14

    Ich seh gleich mal nach was sql_error(); so alles rausrückt.

  • #2
    Dann kann ich ja meine Antwort von vorhin hier gleich mal wieder verwenden...
    http://www.php.de/datenbanken/70017-...tml#post529414

    Grüße
    Thomas

    Kommentar


    • #3
      Also ich ahbe mal deinen Code in meinen eingefügt, jedoch gibt mysql keine fehlermeldung zurück. So siehts aus:

      PHP-Code:
      $query "SELECT pass, level FROM accounts WHERE name = ('$username')";
      if (!
      $query)
      {
      die(
      'Ungültige Abfrage: ' mysql_error());
      }
            
      $result =  mysql_query($query,$conn); 

      Kommentar


      • #4
        Der spuckt diesen Syntax Error raus:

        Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /users/db/www/test/verify.php on line 14
        Das ist kein Syntax-Error, sondern eine Warnung, dass der Parameter vom falschen Typ ist. Ein Blick in die Man-Page von mysql_query() sagt dir natürlich schnell, dass mysql_query() immer dann einen boolschen Wert zurückgibt (false), wenn in der MySQL-Abfrage ein irgendwie gearteter Fehler auftrat.
        Ich seh gleich mal nach was sql_error(); so alles rausrückt.
        Mache so etwas bitte das nächste Mal, bevor du postest.

        Dein Debugging-Ansatz oben ist natürlich auch Quark.
        PHP-Code:
        $query "SELECT pass, level FROM accounts WHERE name = ('$username')";
        if (!
        $query)
        {
        die(
        'Ungültige Abfrage: ' mysql_error());
        }
              
        $result =  mysql_query($query,$conn); 
        Gibt IMMER true zurück, da "SELECT pass, level FROM accounts WHERE name = ('$username')" nun einmal als != false angesehen wird. Du musst natürlich $result abfragen und das natürlich auch erst NACH dem Query.

        Im Übrigen ist dein Code in höchstem Maße anfällig für SQL-Injections.
        Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

        Kommentar


        • #5
          mysql_error(); sagt dieshier:
          No database selected.

          Ich habe doch aber mit include die php datei abrufen lassen wo die variable $dbname definiert ist.

          Kommentar


          • #6
            Ja, dann existiert die Datenbank aber nicht (Tippfehler?) oder $dbname ist doch leer ($dbname ausgeben lassen und mysql_error()!).
            Bitte lerne, selbstständig zu debuggen.
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              ok jetzt sagt er:

              Warning: mysql_query() expects parameter 2 to be resource, null given in /users/db/www/test/verify.php on line 13
              Ungültige Abfrage: Access denied for user 'db'@'localhost' to database 'accounts'

              habe gehört das man an der config datei was ändern muss. wo liegt sie??

              Kommentar


              • #8
                Nein, du musst in der config nichts ändern, du musst lernen, Fehlermeldungen zu lesen.
                Warning: mysql_query() expects parameter 2 to be resource, null given
                Was heißt das wohl? Korrekt: deine Datenbankverbindung, die du da übergeben hast, ist nicht in Ordnung.
                Access denied for user 'db'@'localhost' to database 'accounts'
                Und was heißt das?
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar

                Lädt...
                X