Voor een opdracht voor school heb ik me natuurlijk veel te veel werk op het hals gehaald en ben ik begonnen met het bouwen van een website. Het is niet voor een informaticavak dus het script hoeft niet potdicht te zitten, moet gewoon aardig in elkaar zitten (ik studeer geschiedenis, iets volledig tegenovergesteld dus ..). Nou wil ik een aantal foto's laten zien met een galerijtje en heb ik het volgende scriptje geschreven. Het probleem is dus; hij werkt niet. Waar ligt dit aan? Ik kan de fout echt niet ontrafelen, terwijl 'ie waarschijnlijk erg obvious is .. M'n php kennis is oké, maar niet echt hoogstaand.

<?php
//Hier voer je de map in
$dir = "p5";
//Hier voer je het aantal afbeeldingen in. Afbeeldingen opgeslagen als [nr].jpg
$aantal = 4;
//Naam van de pagina
$pagename = "viewer.php";
//Hier niets aan veranderen
$currentimage = $_GET['afbnr']; //adres is viewer.php/?afbnr= ..
if is_numeric($currentimage){
if ($currentimage = 1) {
$next = $currentimage + 1; //wanneer het de eerste foto is
echo '<img src="["' . $dir . '"]/["' . $currentimage . '"].jpg"><br><br>' . "\n";
echo '<a href="["' . $naampagina . '"]/?id=["' . $next .'"]">Volgende</a>' . "\n";
} elseif ($currentimage = $aantal){ //wanneer de laatste foto is bereikt.
$previous = $currentimage - 1;
echo '<img src="["' . $dir . '"]/["' . $currentimage . '"].jpg"><br><br>' . "\n";
echo '<a href="["' . $naampagina . '"]/?id=["' . $previous .'"]">Vorige</a>' . "\n";
} elseif ($currentimage > $aantal){ //als het afb. nummer niet bestaat
echo 'Deze afbeeldig bestaat niet!'
} else { //anders zit het er ergens tussenin, dus hoort ie erbij.
$next = $currentimage + 1;
$previous = $currentimage - 1;
echo '<img src="["' . $dir . '"]/["' . $currentimage . '"].jpg"><br><br>' . "\n";
echo '<a href="["' . $naampagina . '"]/?id=["' . $next .'"]">Volgende</a> |
<a href="["' . $naampagina . '"]/?id=["' . $previous .'"]">Vorige</a>' . "\n";
}
}else{
echo 'Dit is een niet bestaande pagina omdat het afbeelding-nummer geen getal is!';
}
?>
viewer.php heet het bestand. Had nog een foutje ontdekt; verkeerde variabel, $pagename moet $naampagina zijn. Maar toen ik de aanpassing uploadde naar de server kreeg ik nog steeds hetzelfde resultaat, dus dat is het ook niet :(
echo 'Deze afbeeldig bestaat niet!'

Hier mist de puntkomma,
en je roept viewer.php rechtstreeks aan? dus in je url balk staat iets als:

http://mydomain.nl/viewer.php

?
Ik roep hem aan met mydomain.nl/viewer.php/?afbnr=1

Die puntkomma was het inderdaad, nu krijg ik in ieder geval iets. Of naja iets, het werkt nog steeds niet zoals ik wil dat het zou werken. Die plus 1 komt er telkens niet bij .. dus dat ie naar de volgende afbeelding springt, in plaats daarvan blijft ie telkens bij de eerste 'if' hangen.

Edit: ah nu wel. Maar nu pakt ie de 'if' niet waarbij hij in het midden zit, waarbij je dus zowel een volgende als vorige knop heb ..
Wel merkwaardig dat je nog steeds geen foutmeldingen krijgt.

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>

zou voldoende moeten zijn. Haal die andere twee regels eens weg?
- SanThe - op 29/03/2015 23:21:43

} elseif ($currentimage = $aantal){

} elseif ($currentimage == $aantal){


Heb je deze al aangepast?
Laatstgenoemde was de fout waar ik naar zocht; hij werkt nu! Geeft voldoening om hem eindelijk werkend te hebben, bedankt allemaal voor de reacties! :)
Frank Nietbelangrijk op 29/03/2015 23:50:31

Wel merkwaardig dat je nog steeds geen foutmeldingen krijgt.

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>

zou voldoende moeten zijn. Haal die andere twee regels eens weg?



Nee:
als je een ; vergeet of een andere parse-fout hebt, dan kan je script niet starten.
Een script dat niet start kan ook geen error-reporting aan zetten.

daarvoor moet je in de php-settings zijn vóórdat het script start.
Dus via php.ini, of via .htaccess


php_flag display_errors on
php_value error_reporting -1

Reageren