PHP: Variable in einer MySQL Abfrage

Dark Mania

Mitglied
Thread Starter
Dabei seit
18.02.2006
Beiträge
176
Punkte Reaktionen
0
Tach

Code:
  $request = "SELECT * FROM Datenbank WHERE genre like '$categ' ORDER BY name LIMIT $entry, 25";
  $result = mysql_query($request);

Mit diesem Code funzt das Script nicht. Wenn ich jedoch die Variable $categ durch "xp" (ohne ") ersetze, dann funzt es. Die Variable wird folgendermaßen übergeben

Code:
  $categ = $HTTP_GET_VARS["categ"];

und ja, in der URL steht

(...)&categ=xp(...)

Hoffe, mir kann jemand helfen. Danke.
 

mac-o-rama

Neues Mitglied
Dabei seit
29.01.2006
Beiträge
48
Punkte Reaktionen
0
Hi,

Du hast leider nicht geschrieben, welche PHP Version Du verwendest, aber versuche es mal mit

Code:
 $categ = $_GET["categ"];
 

ApfelRalf

Mitglied
Dabei seit
14.01.2004
Beiträge
654
Punkte Reaktionen
22
Juten Morschen!

Wie sieht denn $request aus, wenn du dir mal mit "echo $request" dein SQL-String ausgeben lässt? Ist $categ überhaupt gefüllt?

Ich benutze immer diese Syntax:

$paramter = $_REQUEST["parameter"];

LG R
 

scope

Aktives Mitglied
Dabei seit
24.01.2005
Beiträge
4.123
Punkte Reaktionen
305
Wenn du es in einen MySQL-Query einbaust, umbedingt vorher den String prüfen, um SQL-Insertion (hieß es so) zu verhindern.

PHP:
$parameter = mysql_escape_string( $_REQUEST['parameter'] );
 

moses_78

Aktives Mitglied
Dabei seit
08.04.2005
Beiträge
1.299
Punkte Reaktionen
22
@Scope: "SQL-Injection" :)

</ot>
 

Dark Mania

Mitglied
Thread Starter
Dabei seit
18.02.2006
Beiträge
176
Punkte Reaktionen
0
Die Variable wird gefüllt, soviel ist sicher
 

wegus

Moderator
Dabei seit
13.09.2004
Beiträge
18.393
Punkte Reaktionen
5.744
Dark Mania schrieb:
Die Variable wird gefüllt, soviel ist sicher


was sich ja durch einen einfachen print();beweisen ließe! In jedem Fall ist Dein Zugriff auf POST/GET-Variablen ab PHP4 veraltet und funktioniert nur noch bei wenigen Servern (register_globals=on). Korrekt wäre ein Zugriff via $_POST[] oder $_GET[]-Array!
 
Oben