• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Such-Abfrage in db funktioniert nicht

sunoghlin

Neues Mitglied
Hi,

Ich habe folgendes php - script, das über ein formular die Datenbank nach den einträgen durchsucht und diese ausgibt.

Hier das Script:

PHP:
/* Anfang: Suche nach Videos */

    echo '<form action="index.php" method="post">';
        echo '<fieldset><legend>Suche nach Video:</legend>';
            echo '<p>Suchbegriff:</p>';
            echo '<input name="suchfunktion" type="input" value="' . $_POST['suchfunktion'] . '">';
            echo '<input name="suche" type="submit" value="Suchen">';
        echo '</fieldset>';
    echo '</form>';

    echo "<table class='uebersicht'>";


    if (isset($_POST['suche'])) {


        echo "<tr>";
            echo "<td class='ueberschrift'>Titel</td>";
            echo "<td class='ueberschrift'>Genre</td>";
            echo "<td class='ueberschrift'>Länge</td>";
            echo "<td class='ueberschrift'>Jahr</td>";
            echo "<td class='ueberschrift'>FSK</td>";
            echo "<td class='ueberschrift'>Bild</td>";
        echo "</tr>";


    $suche = mysql_query("select titel, genre, laenge, jahr, fsk, bild from video where titel like '$suchfunktion%'");


    $slash = "/";

       
        while($ergebnis = mysql_fetch_assoc($suche)){
            echo "<tr>";
                echo "<td>" . $ergebnis['titel'] . "</td>";
                echo "<td>" . $ergebnis['genre'] . "</td>";
                echo "<td>" . $ergebnis['laenge'] . " Minuten</td>";
                echo "<td>" . $ergebnis['jahr'] . "</td>";
                echo "<td>" . $ergebnis['fsk'] . "</td>";
                if ($ergebnis['bild'] != ""){echo "<td><img src=\"bilder $slash".$ergebnis['bild']." \"  alt=\"". $ergebnis['bild'] ." \" class='bild' /></td>";};
            echo "</tr>";
        };

    };

    echo "</table>";

/* Ende: Suche nach Videos */
Nun mein Problem:
Ich arbeite mit xampp. Auf den einen PC macht das script genau das was ich möchte. Er durchsucht die datenbank und er gibt mir das aus, was er gefunden hat.

Wenn ich das selbe Script jetzt auf einen anderen PC (auf diesen ist auch xampp installiert, die db ist auch identisch) ausführe, zeigt gibt er mir immer alle datensätze aus der DB aus. Also, er durchsucht die DB nicht mehr.

Nun meine Frage:
Warum funktioniert das Script auf den einen Pc und nicht auf den anderen? Kann das an der version von xampp liegen?

xampp-version (wo es geht): 1.7.1
xampp-version (wo es nicht geht): 1.7.2

Ich hoffe es kann jemand helfen.

Liebe Grüße :grin:
sunoghlin
 
PHP:
    $suche = mysql_query("select titel, genre, laenge, jahr, fsk, bild
                          from video where titel like '$suchfunktion%'");

Das Script geht von aktiviertem register_globals aus. Das Feature ist mittlerweile deprecated. Schreibe statt $suchfunktion die saubere Variante $_POST['suchfunktion'].

Abgesehen davon müssen alle Nutzereingaben vor dem Eintragen in Queries escaped werden (mysql_real_escape_string()), ansonsten ist das Script anfällig für SQL-Injection-Attacken.
 
HI,

super, hat geklappt. :wink:
Vielen Dank für die schnelle Hilfe!!!

Abgesehen davon müssen alle Nutzereingaben vor dem Eintragen in Queries escaped werden (mysql_real_escape_string()), ansonsten ist das Script anfällig für SQL-Injection-Attacken.
Danke für den Hinweis!

Liebe Grüße :grin:
sunoghlin
 
Zurück
Oben