Andreas Korthaus: layout.php als Vorlage nur wie?

Beitrag lesen

Hi Stefan!

$dbanfrage = "SELECT * FROM main WHERE kat = $_REQUEST[kat]";

|

Ausserdem hast du eine Array-Variable literal in einem String, was so weit ich weiss problematisch ist. Also besser gleich so:

|

$dbanfrage = "SELECT * FROM main WHERE kat = '".$_REQUEST[kat]."'";

Kleine Korrektur bezogen auf die PHP-Variable: So ist das nur richtig wenn die Konstante "kat" definiert ist.

folgende Varianten wären korrekt:

$dbanfrage = "SELECT * FROM main WHERE kat = '$_REQUEST[kat]'";
$dbanfrage = "SELECT * FROM main WHERE kat = '".$_REQUEST['kat']."'";
$dbanfrage = "SELECT * FROM main WHERE kat = '{$_REQUEST['kat']}'";

Siehe hierzu: http://de3.php.net/manual/de/language.types.string.php#language.types.string.parsing

btw.: man sollte übrigens keine Variablen die man nicht selber kontrolliert(also sowas wie $_REQUEST, bei register-globals so ziemlich jede Variable) ungeprüft an eine Datenbank-Abfrage, an die Kommandozeile, an include() oder ähnliches übergeben.

Man sollte in diesem Fall also mindestens mysql_escape_string($_REQUEST['kat']) anwenden.

Siehe hierzu: http://de3.php.net/manual/de/security.database.php#security.database.sql-injection

Viele Grüße
Andreas
--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/