Resource ID #5 Fehler

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

  • Resource ID #5 Fehler

    Moin,
    nachdem ich die letzten Stunden ohne eine Lösung immernoch an dem Problem hänge frage ich euch hier doch mal: Wo ist mein Fehler?

    PHP-Code:
    <html>
    <head><title>KFZ-Zeichenabfrage</title><head>
    <body>
    <form>
    KFZ-Zeichen: <input type="text" name="inputkfz" />
    <input type="submit" />
    </form>
    <?php
    $inputkfz 
    $_GET['inputkfz'];
    if (
    $inputkfz != "") {
    require_once (
    'konfiguration.php');
    $db_link mysql_connect MYSQL_HOST
                               
    MYSQL_BENUTZER
                               
    MYSQL_KENNWORT );
     
    // Nutzen von Datenbank - Name ist hinterlegt in
    // Konstante MYSQL_DATENBANK
    $db_sel mysql_select_dbMYSQL_DATENBANK )
       or die(
    "Auswahl der Datenbank fehlgeschlagen");
     
    $sql "SELECT * FROM kfz WHERE 'kurz' = '$inputkfz' LIMIT 0 , 30 ";
    $db_erg mysql_query$sql );
    if ( ! 
    $db_erg )
    {
      die(
    'Ungültige Abfrage: ' mysql_error());
    }
    print_r($db_erg);
    echo 
    '<table border="1">';
    while (
    $zeile mysql_fetch_assoc$db_erg ))
    {
      echo 
    "<tr>";
      echo 
    "<td>"$zeile['kurz'] . "</td>";
      echo 
    "<td>"$zeile['Ort'] . "</td>";
      echo 
    "<td>"$zeile['Bland'] . "</td>";
      echo 
    "</tr>";
    }
    echo 
    "</table>";
     
    mysql_free_result$db_erg );}
    else
    {echo 
    'Bitte geben Sie mindestens einen Buchstaben ein!';}
    ?></body></html>

  • #2
    Hi,

    du hast ein gehöriges SQL Injection Problem und nimm mal bitte diese Zeile raus:

    [COLOR=#000000][COLOR=#0000CC]print_r[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000CC]$db_erg[/COLOR][COLOR=#006600]);

    [COLOR=black]Wo tritt der Fehler auf in welcher Zeile? Und mach doch statt

    PHP-Code:
     $sql "SELECT * FROM kfz WHERE 'kurz' = '$inputkfz' LIMIT 0 , 30 "
    $db_erg mysql_query$sql ); 
    gleich

    PHP-Code:
     $db_erg mysql_query("SELECT * FROM kfz WHERE kurz = '".mysql_real_escape_string($inputkfz)."' LIMIT 0 , 30") or die("Error: ".mysql_error()); 
    ...und schau Dir am besten gleich mal PDO an (http://php.net/manual/de/ref.pdo-mysql.php).

    mfg streuner[/COLOR]
    [/COLOR][/COLOR]
    Zuletzt geändert von streuner; 19.09.2012, 11:53.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      du bist mein GOTT!!! danke! läuft prima

      Kommentar


      • #4
        Es gibt in dem Sinn keinen Fehler.

        Du fragst deine Datenbank nach

        'kurz' = 'irgendeinkuerzel'

        das ergibt immer false außer du würdest den Wert 'kurz' an 'inputkfz' übergeben.

        Mach es so wie von streuner gezeigt oder setz den Spaltennamen in Backticks - so wie du es machst erkennt die DB nicht die Spalte 'kurz' sondern den String 'kurz'.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar

        Lädt...
        X