Hi,
habe das Ziel eine Url auszulesen, um einen Artikel aus meiner Datenbank auszugeben. Um einer MySqlInjection aus dem Weg zu gehen wollte ich die Tabelle mit den Artikeln in ein Array einlesen (bzw nur die Nummer des Artikels) und dann dieses Array danach durchsuchen lassen. Ist die Überprüfung erfolgreich ist sowohl klargestellt, dass es sich um den richtigen Datentyp handelt (Int) und, dass es diesen Artikel auch gibt. So kann ich bei Attacken oder veralteten Links einen schöden Artikel ausgeben lassen ala "Sorry die Seite gibts nicht".
Mein Problem ist, dass ich immer nur die erste Zeile der Datenbankabfrage in mein Array bekomme
Hier der Code:
Bin auch für andere Optmierungsvorschläge dankbar.
PS:
PHP Version 4.3.10-16
MySQL Client API version 4.0.24
Register Globals On (deaktiviere ich noch)
magic_quotes_gpc on
safe mode on
habe das Ziel eine Url auszulesen, um einen Artikel aus meiner Datenbank auszugeben. Um einer MySqlInjection aus dem Weg zu gehen wollte ich die Tabelle mit den Artikeln in ein Array einlesen (bzw nur die Nummer des Artikels) und dann dieses Array danach durchsuchen lassen. Ist die Überprüfung erfolgreich ist sowohl klargestellt, dass es sich um den richtigen Datentyp handelt (Int) und, dass es diesen Artikel auch gibt. So kann ich bei Attacken oder veralteten Links einen schöden Artikel ausgeben lassen ala "Sorry die Seite gibts nicht".
Mein Problem ist, dass ich immer nur die erste Zeile der Datenbankabfrage in mein Array bekomme
Hier der Code:
PHP-Code:
...
// Adresse in Cleanurl umwandeln
$cleanurl=substr($HTTP_SERVER_VARS["REQUEST_URI"],1,strlen($HTTP_SERVER_VARS["REQUEST_URI"]));
list($dummy,$sprache,$google1,$artikelnummer,$sessionid,$google2) = explode("/",$cleanurl);
...
$abfrage = "SELECT id_artikel FROM artikel";
$erg = mysql_db_query($dbname,$abfrage,$dbverbindung);
$array = mysql_fetch_array($erg,MYSQL_ASSOC);
if (!in_array($artikelnummer, $array)){$artikelnummer=$defaultarticlenumber}
// Artikel bereitstellen
$abfrage = "SELECT * FROM artikel WHERE id_artikel = '$artikelnummer'";
$erg = mysql_db_query($dbname,$abfrage,$dbverbindung);
$row = mysql_fetch_array($erg);
$content = $row['inhalt'];
$ueberschrift = $row['ueberschrift'];
$lastchange = $row['letzteaenderung'];
$artikelgruppe = $row['artikelgruppe'];
PS:
PHP Version 4.3.10-16
MySQL Client API version 4.0.24
Register Globals On (deaktiviere ich noch)
magic_quotes_gpc on
safe mode on
Kommentar