[php] Bild weiter klicken.

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Hallo ich habe eine kleine Gallery geschrieben und möchte sie nun um eine Funktion erweitern.. Ich möchte das wenn der user ein bild im neuen Fenster öffnet er die möglichkeit hat die bilder einer bestimmten Kategorie durchzuschalten. Es geht soweit auch solange die Bilder hintereinander sind.. also die Bilder id's. Wenn ich aber dann mal ein Bild bei Kategorie 1 hinzufüge.. dann bei Kat 2 und dann wieder bei cat 1 fehlt ja quasi eine id.. und dann tritt halt der Fehler auf :(
PHP:
<?php
include("inc/include.php");
include("inc/switch.php");

$query = "update $btable SET visits=visits+1 where id='" . $_GET["id"] . "'";
mysql_query($query);

$query3 = "SELECT min(id) as min, max(id) as max FROM $btable where catid='" . $_GET["catid"] . "'";
//echo $query3;
$result3 = mysql_query($query3) or die (mysql_error());
$array3=mysql_fetch_array($result3);

$query = "SELECT * FROM $btable where id='" . $_GET["id"] . "'";
$result = mysql_query($query) or die (mysql_error());

$array=mysql_fetch_array($result);

		$dir = dirname($_SERVER['PHP_SELF']);
		$id = $array['id'];

echo"
<html>
<meta http-equiv=\"Content-Language\" content=\"de\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<head>
<TITLE>
</TITLE>
<body>
<CENTER>
<img src=\"pic.php?getpic=1&id=". $array['id'] ."\" border=\"0\" alt=\"\"/>";

if ($id != $array3['min'])
{?>
<A HREF="pic.php?id=<?=$id-1;?>&catid=<?=$_GET["catid"]?>"><IMG SRC="inc/back.gif" ALT="Das vorherige Bild anzeigen"></A>&nbsp;&nbsp;
<?}

if ($id != $array3['max'])
{?>
&nbsp;&nbsp;<A HREF="pic.php?id=<?=$id+1;?>&catid=<?=$_GET["catid"]?>"><IMG SRC="inc/vor.gif" ALT="Das n&auml;chste Bild anzeigen"></A>
<?}

echo"</CENTER>
</BODY>
</HTML>
";
}
?>

Wäre nett wenn mir da wer helfen könnte :/

Danke
 
Hallo,

zuerst einmal würde ich auf alle Fälle die GET-Variabeln aus den Abfrage heraus nehmen. Im Moment kann ein Angreifer, sofern kein magic_quotes aktiviert ist, jeden beliebigen Code in den Query einbringen.
Abhilfe könnte zum Beispiel eine Überprüfung schaffen, welche zum Beispiel prüft, ob es sich bei der variablen um eine Zahl oder nicht handelt.

Zum eigentlichen Thema:
Ersetze doch einfach "WHERE id = '$naechsteid'" durch "WHERE id >= '$naechsteid' LIMIT 0, 1 ORDER BY id". Dann wird automatisch immer der nächste Datensatz ausgegeben, welcher die gewählte ID bzw. die nächte vorhandene ID enthält.

MfG mh1001
 
Zuletzt bearbeitet:
Also ich hab das so gelöst:

Ich hab zwei Tabellen, einmal für die Bilder(mknetz_pics) und einmal für die Galerie(mknetz_galleries) und nehme dann folgenden Query:

$querygallery = $_GET['gID']

SELECT * FROM mknetz_galleries, mknetz_pics WHERE mknetz_galleries.gID = $querygallery AND mknetz_galleries.gID = mknetz_pics.galleryID

Und dann machste das wie mh1001 beschrieben hat. Dann bekommste auch nur die Bilder aus der gewünschten Galerie als Ergebnis.
 
Zurück
Oben