issue84, if source picture does not exist or not readable for current user, stop...
[phpfspot.git] / phpfspot.class.php
index 23f0c5462c466621614c15e1e989df6deff8e46c..b61f5161a68d0ed5b81242d2850c0ad887680cb5 100644 (file)
@@ -425,10 +425,12 @@ class PHPFSPOT {
 
       if(!file_exists($orig_path)) {
          $this->_error("Photo ". $orig_path ." does not exist!<br />\n");
+         return;
       }
 
       if(!is_readable($orig_path)) {
          $this->_error("Photo ". $orig_path ." is not readable for user ". $this->getuid() ."<br />\n");
+         return;
       }
 
       /* If the thumbnail doesn't exist yet, try to create it */
@@ -891,8 +893,9 @@ class PHPFSPOT {
       }
       elseif($this->cfg->rows_per_page > 0) {
 
-         if(!$_SESSION['begin_with'] || $_SESSION['begin_with'] == 0)
+         if(!isset($_SESSION['begin_with']) || $_SESSION['begin_with'] == 0) {
             $begin_with = 0;
+         }
          else {
 
             $begin_with = $_SESSION['begin_with'];
@@ -925,30 +928,33 @@ class PHPFSPOT {
 
       for($i = $begin_with; $i < $end_with; $i++) {
 
-         $images[$rows][$cols] = $photos[$i];
-         $img_id[$rows][$cols] = $i;
-         $img_name[$rows][$cols] = htmlspecialchars($this->getPhotoName($photos[$i], 15));
-         $img_title[$rows][$cols] = "Click to view photo ". htmlspecialchars($this->getPhotoName($photos[$i], 0));
+         if(isset($photos[$i])) {
 
-         $thumb_path = $this->get_thumb_path($this->cfg->thumb_width, $photos[$i]);
+            $images[$rows][$cols] = $photos[$i];
+            $img_id[$rows][$cols] = $i;
+            $img_name[$rows][$cols] = htmlspecialchars($this->getPhotoName($photos[$i], 15));
+            $img_title[$rows][$cols] = "Click to view photo ". htmlspecialchars($this->getPhotoName($photos[$i], 0));
 
-         if(file_exists($thumb_path)) {
-            $info = getimagesize($thumb_path); 
-            $img_width[$rows][$cols] = $info[0];
-            $img_height[$rows][$cols] = $info[1];
-         }
+            $thumb_path = $this->get_thumb_path($this->cfg->thumb_width, $photos[$i]);
 
-         if($cols == $this->cfg->thumbs_per_row-1) {
-            $cols = 0;
-            $rows++;
-            $images[$rows] = Array();
-            $img_width[$rows] = Array();
-            $img_height[$rows] = Array();
-         }
-         else {
-            $cols++;
-         }
-      } 
+            if(file_exists($thumb_path)) {
+               $info = getimagesize($thumb_path); 
+               $img_width[$rows][$cols] = $info[0];
+               $img_height[$rows][$cols] = $info[1];
+            }
+
+            if($cols == $this->cfg->thumbs_per_row-1) {
+               $cols = 0;
+               $rows++;
+               $images[$rows] = Array();
+               $img_width[$rows] = Array();
+               $img_height[$rows] = Array();
+            }
+            else {
+               $cols++;
+            }
+         } 
+      }
 
       // +1 for for smarty's selection iteration
       $rows++;
@@ -967,6 +973,8 @@ class PHPFSPOT {
 
       /* do we have to display the page selector ? */
       if($this->cfg->rows_per_page != 0) {
+
+         $page_select = "";
       
          /* calculate the page switchers */
          $previous_start = $begin_with - ($this->cfg->rows_per_page * $this->cfg->thumbs_per_row);
@@ -1853,7 +1861,7 @@ class PHPFSPOT {
    private function getCurrentTags()
    {
       $current_tags = "";
-      if($_SESSION['selected_tags'] != "") {
+      if(isset($_SESSION['selected_tags']) && $_SESSION['selected_tags'] != "") {
          foreach($_SESSION['selected_tags'] as $tag)
             $current_tags.= $tag .",";
          $current_tags = substr($current_tags, 0, strlen($current_tags)-1);