PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Mysql


Gast
2006-10-11, 18:10:40
<?php
include("include/dbconnect.php");
$aid=$_GET["aid"];
print "id=$aid";
$query= "SELECT * from img where art='$aid'";
$result=mysql_query($query);
//print mysql_error();
$a=mysql_num_rows($result);
print "found=$a";
for ($i=0;$i<$a;$i++) {
$pic=mysql_result($result,$i,"link");
print $pic. "<br>";
}
?>

Das ist der Code...
In der Tabelle img existiert sowohl das Feld "link" als auch "art". Die Variable $aid wird korrekt uebergeben, nur er findet einfach keine Ergebnisse. Wenn ich " where art='$aid' " weglasse funzt es. Aber leider nicht mit, obwohl die Daten in der DB stimmen.
Weiss jemand woran das liegen koennte?

Marscel
2006-10-11, 18:41:12
Das sieht ja grausam aus:

<?php
include("include/dbconnect.php");
$aid=$_GET['aid'];
print "id=".$aid;
// Injectiongefahr, wenn $_GET['aid'] nicht gefiltert wird
$query= "SELECT * FROM img WHERE art='" . mysql_real_escape_string($aid) . "';";
if($result=mysql_query($query))
{
while($a=mysql_fetch_row($result))
{
print "found=".$a;
print $a['link']. "<br>";
}
}
else
{
print mysql_error();
}
?>


Ungetestet, sieht aber ein bisschen besser aus.

Gast
2006-10-11, 19:13:38
danke schonmal, klappt aber leider immer noch nicht.

Marscel
2006-10-11, 19:28:15
Gibt es keine Fehlermeldungen? Oder Ausgabe von irgendeinem der prints?

Gast
2006-10-11, 19:32:10
wenn ich deinen code benutze, kommt z.B. folgendes zurueck:

id= KY8481

Also nur die id.
Der Value von "link" ist dabei "31m.jpg", der wird aber nicht zurueckgegeben...
Keine Fehlermeldung.

Gast
2006-10-12, 17:37:05
Habs jetzt irgendwie hinbekomme.
Kannst du mir kurz erklaeren was du mit Injection meinst?

Tommes
2006-10-12, 17:56:23
Das: http://de.wikipedia.org/wiki/SQL-Injektion und das http://de2.php.net/manual/de/security.database.sql-injection.php