Archief - PHP: Fotopagina

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ozl

Legacy Member
Hey,

Ik heb een pagina met foto's op en nu zou ik willen dat wanneer ik op een foto klik je naar een algemene pagina wordt gebracht waar de foto groter wordt getoond. Natuurlijk wil ik maar 1x zo'n algemene pagina maken dat ik niet voor elke foto een aparte pagina moet maken.

Het zal dus iets zijn van een id 2 (bv) aan een afbeelding te geven en dan via afbeelding.php?=2 naar de algemene pagina te gaan waar afbeelding met id 2 wordt weergegeven. Ik denk toch dat het zoiets moet worden?

Alleen weet ik niet waar ik moet beginnen of hoe ik het moet aanpakken?

Alvast bedankt.

exxhal

Legacy Member
Ik heb ongeveer zoiets, ik verstuur dan het ID van de foto d.m.v. POST naar een ****.php
wanneer ze erop klikken.
Welke dan de gegevens toont.
Ik gebruikte een form met het type="hidden". waar ik dan de waarde van het id stopte.
In jouw geval dus het id van de foto.

Tyfius

Legacy Member
POST, hidden, wtf? Overkill enzo...

Gewoon linken naar afbeelding.php?id=<id> en dan op afbeelding.php iets als:
Code:
$id = $_GET['id'];
echo '<img src="paht/'.$id.'.png">';
Of, uit een DB het path naar de afbeelding met het gegeven ID ophalen.

Vrij eenvoudig toch allemaal, ik snap niet wat daar het probleem kan zijn.

ozl

Legacy Member
Ok bedankt tyfius dat werkt zoals ik het had gewild.

Is het nu ook mogelijk om een vorige en volgende link te maken met id + 1; ofzoiets?

EDIT:

Ok via <a href="afbeelding.php?id=<?php echo $id+1; ?>">volgende</a> blijkt dit dus te werken maar hoe kan je dit limiteren tot het aantal foto's dat je hebt?

exxhal

Legacy Member
<A href="javascript:history.go(-1);" class="style9"><strong class="kop style9">Klik hier om terug te gaan <img src="images/terug.jpg" /></strong></A>';

Tyfius

Legacy Member
exxhal zei:
<A href="javascript:history.go(-1);" class="style9"><strong class="kop style9">Klik hier om terug te gaan <img src="images/terug.jpg" /></strong></A>';
Daar is hij dus compleet niets mee.

Je maakt best een lijst met alle ID's, uitlezen uit een DB of van die file names in een directory. Op die manier maak je je volgende link gewoon met het volgende ID, en de vorige link met het vorige ID. Wanneer je aan je laatste element in je lijst zit weet je dat je niet verder hoeft te gaan.

ozl

Legacy Member
Tyfius zei:
Daar is hij dus compleet niets mee.

Je maakt best een lijst met alle ID's, uitlezen uit een DB of van die file names in een directory. Op die manier maak je je volgende link gewoon met het volgende ID, en de vorige link met het vorige ID. Wanneer je aan je laatste element in je lijst zit weet je dat je niet verder hoeft te gaan.

Hmm, wat bedoel je met een lijst maken? Is dat via list()?

welp

Legacy Member
Je doorloopt de foto's in je database en zet al de ID's in een array.

Daarna maak je gebruik van de array functies om de volgende en vorige te bepalen.

Hierdoor klopt je systeem altijd, ook al zijn er bepaalde rijen uit je database verwijderd.

Gogeta

Legacy Member
maw, ge gebruikt tochn dbase? of stan al die fotos gwn in ne folder?

Tyfius

Legacy Member
Of dat nu in een database staat of in een folder maakt niet uit. Je leest die ergens van uit, maakt daar een lijst (array) van en gebruikt die lijst om te bepalen waar je zit en welke je vorige en volgende foto is.

ozl

Legacy Member
Ik gebruik geen database en als dat echt niet nodig zou ik dat liever vermijden ook. Maar als het echt gemakkelijker is ...

Bram

Legacy Member
PHP:
<?php
$dir = '/hier/staan/mijn/fotos/*.jpg'; // /*.jpg zeker laten staan! uw foto's moeten dus allemaal .jpg zijn
$url = isset($_GET['url']) ? $_GET['url'] : '';

if(empty($url)) {
	foreach(glob($dir) as $image) {
		echo "<a href=\"fotos.php?url=$image\"><img src=\"$image\" /></a>"; // fotos.php aanpassen naar hoe uw .php file noemt.
	}
} else {
	echo "<a href=\"javascript:history.go(-1);\"><img src=\"$url\" /></a>";
}
?>
Basic, but should do the trick.

taLa.

Legacy Member
... en vergeet geen htmlentities rond uw user-input variabelen te smijten voor ge ze terug output!

ozl

Legacy Member
Ik heb nu dit script en het werkt zoals ik het wil:

afbeelding.php:

PHP:
<?php
include_once('pictures.php');
$aantal = count($a_img);
$id = $_GET['id'];

echo "<img src='images/fotos/".$a_img[$id]."' />";

if($id>0)
    echo "<img src='images/arrow-left.jpg' /><a href='afbeelding.php?id=" . ($id - 1) . "#afbeelding' class='linkstyle4'>previous</a>";
		    
if($id<$aantal - 1)
    echo "<a href='afbeelding.php?id=" . ($id + 1) . "#afbeelding' class='linkstyle4'>next</a><img src='images/arrow-right.jpg' />";
?>

pictures.php:

PHP:
<?php
$folder = "images/fotos/";
$allowed_types = array("png","bmp","jpg","gif");

$dimg = opendir($folder);
  while($imgfile = readdir($dimg))
  {
   if(in_array(strtolower(substr($imgfile,-3)),$allowed_types))
   {
    $a_img[] = $imgfile;
    sort($a_img);
   }
  } 

count($a_img);
?>
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan