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!';
}
?>
Mike Van der Veer op 29/03/2015 21:56:07

Momenteel nog niet, geen html tekst. Heb het wel geprobeerd met <html><head><body> eromheen maar dat lost ook niets op.

Oplossen misschien niet, maar als je wilt dat je uiteindelijk werkende pagina goed wordt weergegeven wel noodzakelijk.

Wat is de extensie van de bestandsnaam?
Wat als je op regel 2 zet <?php echo 'test'; ?> ?
Die GET komt uit de titel: wanneer je naar [adres].php/?afbnr=1 bijv.

Had ook een foutje gezien, die links waren verkeerd (had daar id staan ipv afbnr), dus aangepast.

html inmiddels er ook bij gezet, werkt nog steeds niet. Wanneer ik test op regel 2 van de php code zet doet ie nog steeds niets ..
Mike Van der Veer op 29/03/2015 22:11:09

Wanneer ik test op regel 2 van de php code zet doet ie nog steeds niets ..

Welke extensie heeft het bestand?

Draai je het bestand lokaal/op je pc? Of bij een host?
In het 1e geval: hoe roep je het bestand aan?
Bij een host dus online en niet lokaal. Extensie is .php. Daar moet je ze toch ook altijd op opslaan?
if ($currentimage = 1) {

Als het lukt om de waarde 1 in die var te stoppen ....


Gebruik je echter == dan betekent het: als de waarde van de var 1 is dan....

Gezien je in de elseif ook = gebruikt vermoed ik dat je == nodig hebt
Ivo P op 29/03/2015 22:39:11

if ($currentimage = 1) {

Als het lukt om de waarde 1 in die var te stoppen ....


Gebruik je echter == dan betekent het: als de waarde van de var 1 is dan....

Gezien je in de elseif ook = gebruikt vermoed ik dat je == nodig hebt

Heb ik nu aangepast, maar ik krijg nog steeds niets. Ook die 'test' echo werkt niet. Dit heb ik nu:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Viewer</title>
</head>
<body>
<?php
echo 'test';
ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
error_reporting(E_ALL);
//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 . '/?afbnr=' . $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 . '/?afbnr=' . $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 . '/?afbnr=' . $next .'">Volgende</a> |
<a href="' . $naampagina . '/?afbnr=' . $previous .'">Vorige</a>' . "\n";
}
}else{
echo 'Dit is een niet bestaande pagina omdat het afbeelding-nummer geen getal is!';
}
?>
</body>
</html>
En waar bewaar je dit bestand? Lokaal of heb je het uploaded naar een provider?
Welke provider heb je of hoe vraag je het bestand lokaal op? onder welk besturingssysteem werk je? etc
Kortom geef ons iets meer informatie
Geupload naar een provider, de provider is TransIP. Zit op een mac dus OS X Yosemite. Maar dat zou niet uit moeten maken want hij moet op de meeste besturingssystemen toch kunnen draaien? Heb zowel in chrome als safari geprobeerd te openen, allebei met hetzelfde resultaat ..
Duidelijk. Hoe heet het bestand waarin deze code staat? roep je wel het juiste bestand op? Want <?php echo 'test'; ?> zou zeker moeten werken.
} elseif ($currentimage = $aantal){

} elseif ($currentimage == $aantal){

Reageren