Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Fotoalbum

Anoniem
Bill Gates
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>
    ";
    }

    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>
    ";

    $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>
    ";

    $i++;

    }


    if ($i == 4) {
    echo "</tr>
    <tr>
    ";
    $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
    ossp.org/photos";

    /* Directory for cached thumbnails */
    $cache_dir = "/var/httpd
    ossp.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>
    ";
    }

    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>
    ";

    $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>
    ";

    $i++;

    }


    if ($i == 4) {
    echo "</tr>
    <tr>
    ";
    $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

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