Een aanwijzing over de mogelijke fout, die ik hier maak, zou zeer welkom zijn.
In een poging een foto naar een webpagina te zetten loop ik tegen het volgende probleem aan (ondanks talloze pogingen de fout te vinden). De bedoeling is via een in PHP aangemaakte variabele naar het pas te verwijzen.
De volgende tekst staat in de Header-sectie:
<?php
$PadInfo="//LAB01/Users/Ivar Labordus/Pictures/Saved Pictures/Levi/";
?>

En in de Body:
<?php
$FileName="0001.jpg";
$FullName = $PadInfo . $FileName;
?>
<a target="_blank" href=<?php echo $FullName ?>>
<h> <?php echo $FullName ?> </h>
<img src= <?php echo $FullName ?> alt="Pad naar /Levi/0001.jpg op \\Lab01 niet gevonden" width="600" height="400">
</a>


In de header wordt het pad keurig weergegeven, maar het ophalen van de foto lukt niet. Steeds wordt de ALT tekst weergegeven.
Ik zou mij zeer geholpen voelen met een aanwijzing waar ik de fout moet zoeken.
Bijna goed:


 <img src="image.php?img=0001.jpg"> 


En nog mooier is het als je een isset() check doet op je $_GET['img'], en eventueel een readfile doet naar een 'Oops, image not found' plaatje.
... en misschien "een paar kleine controles inbouwen" om te voorkomen dat "gebruikers" image.php?img=../../../../../../../../../etc/passwd op gaan vragen ... (of elke willekeurige andere file - je serveert 'm namelijk gewoon plat uit, dus ook PHP wordt leesbaar, wel met een content-type: image header, maar dat maakt niet uit).
Mja ik zou zelf helemaal geen bestandsnamen accepteren. Gewoon een id en dan haal ik de bestandsnaam wel uit de database. Dat sluit ook prima aan als je aanvullende informatie wilt opslaan over je bestanden zoals uploaddatum en wie de eigenaar is.

Reageren