issue65, fixed incorrect array_rand handling
[phpfspot.git] / rpc.php
diff --git a/rpc.php b/rpc.php
index 2e3045923c6c0052fdfb476165355e2732b2ee31..b691bd8908abdaa287928a4018fa4ce889c9a4fa 100644 (file)
--- a/rpc.php
+++ b/rpc.php
@@ -42,32 +42,32 @@ class PHPFSPOT_RPC {
 
       switch($_GET['action']) {
          case 'showphoto':
-
-            $fspot->showPhoto($_GET['id']);
+            if(isset($_GET['id']) && is_numeric($_GET['id'])) {
+               $fspot->showPhoto($_GET['id']);
+            }
             break;
    
          case 'show_available_tags':
-
             $fspot->getAvailableTags();
             break;
 
          case 'show_selected_tags':
-
             $fspot->getSelectedTags();
             break;
 
          case 'addtag':
-
-            $fspot->addTag($_GET['id']);
+            if(isset($_GET['id']) && is_numeric($_GET['id'])) {
+               $fspot->addTag($_GET['id']);
+            }
             break;
 
          case 'deltag':
-
-            $fspot->delTag($_GET['id']);
+            if(isset($_GET['id']) && is_numeric($_GET['id'])) {
+               $fspot->delTag($_GET['id']);
+            }
             break;
 
          case 'reset':
-
             $fspot->resetTagSearch();
             $fspot->resetTags();
             $fspot->resetDateSearch();
@@ -75,36 +75,30 @@ class PHPFSPOT_RPC {
             break;
 
          case 'tagcondition':
-
-            $fspot->setTagCondition($_GET['mode']);
+            if(isset($_GET['mode']) && in_array($_GET['mode'], Array('or', 'and'))) {
+               $fspot->setTagCondition($_GET['mode']);
+            }
             break;
 
          case 'show_photo_index':
-
-            $_SESSION['begin_with'] = $_GET['begin_with'];
+            if(isset($_GET['begin_with']) && is_numeric($_GET['begin_with'])) {
+               $_SESSION['begin_with'] = $_GET['begin_with'];
+            }
+            else {
+               unset($_SESSION['begin_with']);
+            }
             $fspot->showPhotoIndex();
             break;
    
          case 'showcredits':
-
             $fspot->showCredits();
             break;
 
-         case 'tag_search':
-
-            $fspot->resetDateSearch();
-            $fspot->startTagSearch($_GET['for']);
-            break;
-
-         case 'date_search':
-   
-            $fspot->resetTagSearch();
-            $fspot->resetTags();
-            $fspot->startDateSearch($_GET['from'], $_GET['to']);
+         case 'search':
+            $fspot->startSearch($_GET['for'], $_GET['from'], $_GET['to'], $_GET['sort_order']);
             break;
 
          case 'get_export':
-
             $fspot->getExport($_GET['mode']);
             break;
 
@@ -120,6 +114,18 @@ class PHPFSPOT_RPC {
             print $fspot->whatToDo();
             break;
 
+         case 'reset_slideshow':
+            print $fspot->resetSlideShow();
+            break;
+
+         case 'get_next_slideshow_img':
+            print $fspot->getNextSlideShowImage();
+            break;
+         
+         case 'get_prev_slideshow_img':
+            print $fspot->getPrevSlideShowImage();
+            break;
+
       }
 
    } // process_ajax_request();