Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Fotoalbum

3 antwoorden
  • Wie kan mij helpen met het volgende script.. het is een fotoalbum (hij leest folders en foto's) alleen ik krijg de volgende errors: [i:b7be3140ca] Notice: Undefined index: photofile in d:\program files\easyphp1-7\www\project\photodir-1.1\photodir.php on line 56 Notice: Undefined index: thumbfile in d:\program files\easyphp1-7\www\project\photodir-1.1\photodir.php on line 71 Notice: Undefined index: dir in d:\program files\easyphp1-7\www\project\photodir-1.1\photodir.php on line 150 [/i:b7be3140ca] En aangezien ik nogal noob ben wil ik graag weten of iemand weet wat er fout is :roll: Script: [code:1:b7be3140ca] <? /* * PHOTODIR * photodir.php - Main program * Version 1.1, 20-Jan-04 * Copyright 2004 Ross W. Poulton * ross@rossp.org * http://www.rossp.org/ * * This file is part of PhotoDir. * * PhotoDir is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * PhotoDir is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PhotoDir; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ // Define some basic variables: /* Directory where photos are stored */ $photo_dir = "/www/project/photos"; /* Directory for cached thumbnails */ $cache_dir = "/www/project/photos-cache"; /* URI to where photos are stored */ $photo_url = "/photos/"; /* 'Frame' picture - thumbnails will be centred on top of this image */ $frame_pic = "outline.jpg"; /* 'Folder' picture */ $folder_pic = "folder.jpg"; /* 'Parent' picture */ $parent_pic = "folder.jpg"; /* Maximum dimensions for a thumbnail will be $thumb_max * $thumb_max. Thumbs are made proportionatly, eg a 200x100 image with thumb_max of 100 will be resized to 100x50. */ $thumb_max = 200; /* *********************************************** */ /* END CONFIGURATION */ /* *********************************************** */ if ($_GET['photofile']) { /* If we're just displaying a photo, send it out to the user. */ $photo = $photo_dir . "/" . stripslashes($_GET['photofile']); if (realpath($photo) != $photo) { /* Use realpath to find out if someone has tried spoofing us with ../../../../etc/passwd or similar. */ exit; } header("Content-type: image/jpeg"); readfile($photo); exit; } elseif ($_GET['thumbfile']) { /* Display a thumbnail. This will be a resized version of the full file, but superimposed on your outline image. */ $photo = $photo_dir . "/" . stripslashes($_GET['thumbfile']); if (realpath($photo) != $photo) { exit; } header("Content-type: image/jpeg"); $md5sum = md5("$photo"); $cache_file = $cache_dir . "/$md5sum"; if ((!file_exists($cache_file)) || (filemtime($cache_file) < filemtime($photo))) { $outline_img = imagecreatefromjpeg($photo_dir . "/" . $frame_pic); $outline_width = imagesx($outline_img); $outline_height = imagesy($outline_img); $src_img = imagecreatefromjpeg($photo); $size = getimagesize($photo); $origw = $size[0]; $origh = $size[1]; if ($origw > $origh) { $neww = $thumb_max; $diff = $origw / $neww; $newh = $origh / $diff; } else { $newh = $thumb_max; $diff = $origh / $newh; $neww = $origw / $diff; } $dst_img = imagecreatetruecolor($neww, $newh); if (function_exists('imagecopyresampled')) { imagecopyresampled($dst_img,$src_img,0,0,0,0,$neww,$newh, $origw,$origh); } else { imagecopyresized($dst_img, $src_img,0,0,0,0,$neww,$newh,$origw, $origh); } imagealphablending($outline_img, true); /* The following block makes up our co-ordinates for placing the thumbnail on the frame. We always start at least 2 pixels from each edge, and from there the image is centered both horizontally and vertically. */ if ($neww > $newh) { $startx = 2; $starty = ((100 - $newh) / 2) + 2; } else { $startx = ((100 - $neww) / 2) + 2; $starty = 2; } imagecopy($outline_img, $dst_img, $startx, $starty, 0, 0, $neww, $newh); imagejpeg($outline_img, $cache_file); } readfile ($cache_file); exit; } include "header.html"; /* $dir is the full filesystem directory that we're looking at, eg /var/httpd/photos/Holidays/NewYork2003 $path is everything AFTER the 'standard' photo directory, eg Holidays/NewYork2003 */ if ($_GET['dir'] != "") { $dir = $photo_dir . "/" . stripslashes($_GET['dir']); $path = $_GET['dir']; } else { $dir = $photo_dir; $path = ""; } if (substr($dir, -1, 1) == "/") { /* Remove the trailing slash if there is one */ $dir = substr($dir, 0, -1); } if (substr($path, -1, 1) == "/") { /* Remove the trailing slash if there is one */ $path = substr($path, 0, -1); } if ($dir != realpath($dir)) { /* Quick check to make sure our path hasn't been poisened, eg ../../../../etc/passwd or similar. */ exit; } /* Initialise basic variables */ $i = 1; $first = "y"; if ((is_dir($dir)) && ($dir != "") && ($_GET['image'] == "")) { if ($dh = opendir($dir)) { echo "<table border=0 width=100%>"; echo "<tr>"; while (($file = readdir($dh)) !== false) { if (($file != ".") && ($file != "..") && !(($file == $folder_pic) && ($path != "/")) && !(($file == $frame_pic) && ($path != "/"))) { if (($first == "y") && ($path != "")) { /* If this is the first entry to be displayed on this page, then put in a 'Parent' link to back up a level. */ $first = "n"; $parts = explode("/", $path); if (count($parts) == 0) { $parent = ""; } else { for ($j=0; $j<count($parts)-1; $j++) { $parent .= $parts[$j] . "/"; } } echo "<td width=25% align=center valign=top>"; echo "<a href='$PHP_SELF?dir=$parent'>"; echo "<img src='$photo_url/" . $folder_pic . "'>"; echo "<br>Parent Directory"; echo "</a><br>"; echo "</td>\n"; } if (filetype($dir . "/" . $file) == "dir") { /* This is a directory, display our folder icon */ echo "<td width=25% align=center valign=top>"; echo "<a href='$PHP_SELF?dir="; if ($path == "") { echo $file; } else { echo $path . "/" . $file; } echo "'>"; echo "<img src='$photo_url/" . $folder_pic; echo "'><br>$file</a><br>"; echo "</td>\n"; $i++; } elseif (eregi("jpg", $file)) { /* This is an image, display its thumbnail and a link to the full image. */ echo "<td width=25% align=center valign=top>"; echo "<a href='$PHP_SELF?image=$path/$file'>"; echo "<img src='$PHP_SELF?thumbfile="; echo $path . "/" . $file; echo "'><br>"; echo eregi_replace(".jpg", "", $file) . "</a><br>"; echo "</td>\n"; $i++; } if ($i == 4) { echo "</tr>\n<tr>\n"; $i = 0; } } } closedir($dh); echo "</tr></table>"; } else { echo "That directory can't be opened! :(<br>"; echo "Maybe try checking permissions.<br>"; } } else { /* Display large photo and information */ echo "<h2 align=center>"; echo eregi_replace(".jpg", "", basename($photo_dir . $_GET['image'])); echo "</h2>"; echo "<p align=center>"; echo "<img src='$PHP_SELF?photofile=" . stripslashes($_GET['image']) . "'>"; echo "<br>"; $size = getimagesize($photo_dir . "/" . $_GET['image']); $origw = $size[0]; $origh = $size[1]; echo "<b>Photo Size</b>: $origw x $origh pixels<br>"; echo "<b>Filesize</b>: "; echo format_file_size(filesize($photo_dir . "/" . $_GET['image'])); echo "<br>"; echo "<b>Last Modified</b>: "; echo date("d-m-y", filemtime($photo_dir . "/" . $_GET['image'])); echo "<br>"; $parts = explode("/", stripslashes($_GET['image'])); if (count($parts) == 0) { $parent = ""; } else { for ($j=0; $j<count($parts)-1; $j++) { $parent .= $parts[$j] . "/"; } $parent = substr($parent, 0, -1); } echo "<br>"; echo "<a href='$PHP_SELF?dir=$parent'>Back</a>"; echo "</p>"; } include "footer.html"; function format_file_size($size) { if ($size <= 1024) { return $size . "Mb"; } elseif (($size > 1024) && ($size <= 1024000)) { $size = $size / 1024; $size = round($size, 2); return $size . "Kb"; } elseif (($size > 1024000) && ($size <= 1024000000)) { $size = $size / 1024000; $size = round($size, 2); return $size . "Mb"; } else { $size = $size / 1024000000; $size = round($size, 2); return $size . "Gb"; } } ?> [/code:1:b7be3140ca]
  • Kan je op z'n minst aangeven om welke regels het gaat, ik ga ze namelijk echt niet zelf tellen... ;) - Bas
  • [quote:b18c620ec5="BasHamar"]Kan je op z'n minst aangeven om welke regels het gaat, ik ga ze namelijk echt niet zelf tellen... ;) - Bas[/quote:b18c620ec5] Owja.. (ben gewent dat bij de code tag altijd nummersstaan op websites waar ik vaak zit) :wink: [code:1:b18c620ec5]<? /* * PHOTODIR * photodir.php - Main program * Version 1.1, 20-Jan-04 * Copyright 2004 Ross W. Poulton * ross@rossp.org * http://www.rossp.org/ * * This file is part of PhotoDir. * * PhotoDir is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * PhotoDir is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PhotoDir; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ // Define some basic variables: /* Directory where photos are stored */ $photo_dir = "/var/httpd/rossp.org/photos"; /* Directory for cached thumbnails */ $cache_dir = "/var/httpd/rossp.org/photos-cache"; /* URI to where photos are stored */ $photo_url = "/photos"; /* 'Frame' picture - thumbnails will be centred on top of this image */ $frame_pic = "outline.jpg"; /* 'Folder' picture */ $folder_pic = "folder.jpg"; /* 'Parent' picture */ $parent_pic = "folder.jpg"; /* Maximum dimensions for a thumbnail will be $thumb_max * $thumb_max. Thumbs are made proportionatly, eg a 200x100 image with thumb_max of 100 will be resized to 100x50. */ $thumb_max = 100; /* *********************************************** */ /* END CONFIGURATION */ /* *********************************************** */ #################################################################REGEL 56 ############################################### if ($_GET['photofile']) { /* If we're just displaying a photo, send it out to the user. */ $photo = $photo_dir . "/" . stripslashes($_GET['photofile']); if (realpath($photo) != $photo) { /* Use realpath to find out if someone has tried spoofing us with ../../../../etc/passwd or similar. */ exit; } header("Content-type: image/jpeg"); readfile($photo); exit; #################################################################REGEL 71 ############################################### } elseif ($_GET['thumbfile']) { /* Display a thumbnail. This will be a resized version of the full file, but superimposed on your outline image. */ $photo = $photo_dir . "/" . stripslashes($_GET['thumbfile']); if (realpath($photo) != $photo) { exit; } header("Content-type: image/jpeg"); $md5sum = md5("$photo"); $cache_file = $cache_dir . "/$md5sum"; if ((!file_exists($cache_file)) || (filemtime($cache_file) < filemtime($photo))) { $outline_img = imagecreatefromjpeg($photo_dir . "/" . $frame_pic); $outline_width = imagesx($outline_img); $outline_height = imagesy($outline_img); $src_img = imagecreatefromjpeg($photo); $size = getimagesize($photo); $origw = $size[0]; $origh = $size[1]; if ($origw > $origh) { $neww = $thumb_max; $diff = $origw / $neww; $newh = $origh / $diff; } else { $newh = $thumb_max; $diff = $origh / $newh; $neww = $origw / $diff; } $dst_img = imagecreatetruecolor($neww, $newh); if (function_exists('imagecopyresampled')) { imagecopyresampled($dst_img,$src_img,0,0,0,0,$neww,$newh, $origw,$origh); } else { imagecopyresized($dst_img, $src_img,0,0,0,0,$neww,$newh,$origw, $origh); } imagealphablending($outline_img, true); /* The following block makes up our co-ordinates for placing the thumbnail on the frame. We always start at least 2 pixels from each edge, and from there the image is centered both horizontally and vertically. */ if ($neww > $newh) { $startx = 2; $starty = ((100 - $newh) / 2) + 2; } else { $startx = ((100 - $neww) / 2) + 2; $starty = 2; } imagecopy($outline_img, $dst_img, $startx, $starty, 0, 0, $neww, $newh); imagejpeg($outline_img, $cache_file); } readfile ($cache_file); exit; } include "header.html"; /* $dir is the full filesystem directory that we're looking at, eg /var/httpd/photos/Holidays/NewYork2003 $path is everything AFTER the 'standard' photo directory, eg Holidays/NewYork2003 */ #################################################################REGEL 105 ###############################################3 if ($_GET['dir'] != "") { $dir = $photo_dir . "/" . stripslashes($_GET['dir']); $path = $_GET['dir']; } else { $dir = $photo_dir; $path = ""; } if (substr($dir, -1, 1) == "/") { /* Remove the trailing slash if there is one */ $dir = substr($dir, 0, -1); } if (substr($path, -1, 1) == "/") { /* Remove the trailing slash if there is one */ $path = substr($path, 0, -1); } if ($dir != realpath($dir)) { /* Quick check to make sure our path hasn't been poisened, eg ../../../../etc/passwd or similar. */ exit; } /* Initialise basic variables */ $i = 1; $first = "y"; if ((is_dir($dir)) && ($dir != "") && ($_GET['image'] == "")) { if ($dh = opendir($dir)) { echo "<table border=0 width=100%>"; echo "<tr>"; while (($file = readdir($dh)) !== false) { if (($file != ".") && ($file != "..") && !(($file == $folder_pic) && ($path != "/")) && !(($file == $frame_pic) && ($path != "/"))) { if (($first == "y") && ($path != "")) { /* If this is the first entry to be displayed on this page, then put in a 'Parent' link to back up a level. */ $first = "n"; $parts = explode("/", $path); if (count($parts) == 0) { $parent = ""; } else { for ($j=0; $j<count($parts)-1; $j++) { $parent .= $parts[$j] . "/"; } } echo "<td width=25% align=center valign=top>"; echo "<a href='$PHP_SELF?dir=$parent'>"; echo "<img src='$photo_url/" . $folder_pic . "'>"; echo "<br>Parent Directory"; echo "</a><br>"; echo "</td>\n"; } if (filetype($dir . "/" . $file) == "dir") { /* This is a directory, display our folder icon */ echo "<td width=25% align=center valign=top>"; echo "<a href='$PHP_SELF?dir="; if ($path == "") { echo $file; } else { echo $path . "/" . $file; } echo "'>"; echo "<img src='$photo_url/" . $folder_pic; echo "'><br>$file</a><br>"; echo "</td>\n"; $i++; } elseif (eregi("jpg", $file)) { /* This is an image, display its thumbnail and a link to the full image. */ echo "<td width=25% align=center valign=top>"; echo "<a href='$PHP_SELF?image=$path/$file'>"; echo "<img src='$PHP_SELF?thumbfile="; echo $path . "/" . $file; echo "'><br>"; echo eregi_replace(".jpg", "", $file) . "</a><br>"; echo "</td>\n"; $i++; } if ($i == 4) { echo "</tr>\n<tr>\n"; $i = 0; } } } closedir($dh); echo "</tr></table>"; } else { echo "That directory can't be opened! :(<br>"; echo "Maybe try checking permissions.<br>"; } } else { /* Display large photo and information */ echo "<h2 align=center>"; echo eregi_replace(".jpg", "", basename($photo_dir . $_GET['image'])); echo "</h2>"; echo "<p align=center>"; echo "<img src='$PHP_SELF?photofile=" . stripslashes($_GET['image']) . "'>"; echo "<br>"; $size = getimagesize($photo_dir . "/" . $_GET['image']); $origw = $size[0]; $origh = $size[1]; echo "<b>Photo Size</b>: $origw x $origh pixels<br>"; echo "<b>Filesize</b>: "; echo format_file_size(filesize($photo_dir . "/" . $_GET['image'])); echo "<br>"; echo "<b>Last Modified</b>: "; echo date("d-m-y", filemtime($photo_dir . "/" . $_GET['image'])); echo "<br>"; $parts = explode("/", stripslashes($_GET['image'])); if (count($parts) == 0) { $parent = ""; } else { for ($j=0; $j<count($parts)-1; $j++) { $parent .= $parts[$j] . "/"; } $parent = substr($parent, 0, -1); } echo "<br>"; echo "<a href='$PHP_SELF?dir=$parent'>Back</a>"; echo "</p>"; } include "footer.html"; function format_file_size($size) { if ($size <= 1024) { return $size . "Mb"; } elseif (($size > 1024) && ($size <= 1024000)) { $size = $size / 1024; $size = round($size, 2); return $size . "Kb"; } elseif (($size > 1024000) && ($size <= 1024000000)) { $size = $size / 1024000; $size = round($size, 2); return $size . "Mb"; } else { $size = $size / 1024000000; $size = round($size, 2); return $size . "Gb"; } } ?> [/code:1:b18c620ec5]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.