Better error message when invalid arguments are supplied.
[moodle.git] / user / pix.php
index 7c56d64..d81853d 100644 (file)
@@ -1,34 +1,41 @@
 <?PHP // $Id$
       // This function fetches user pictures from the data directory
-      // Syntax:   file.php/userid/f1.jpg
+      // Syntax:   pix.php/userid/f1.jpg or pix.php/userid/f2.jpg
+      //     OR:   ?file=userid/f1.jpg or ?file=userid/f2.jpg
 
     require("../config.php");
 
     $lifetime = 86400;
 
-    if (!$PATH_INFO) {
-        error("This script DEPENDS on $PATH_INFO being available.  Read the README.");
+    if (isset($file)) {
+        $PATH_INFO = $file;
+
+    } else if (!$PATH_INFO) {
+        $PATH_INFO = "";       // Will just show default picture
+    }
+
+    if (! $args = get_slash_arguments()) {
+        error("No valid arguments supplied");
     }
 
-    $args = get_slash_arguments();
     $numargs = count($args);
 
     if ($numargs == 2) {
         $userid = (integer)$args[0];
         $image  = $args[1];
+        $pathname = "$CFG->dataroot/users/$userid/$image";
     } else {
-        $userid = 0;
-        $image  = "f1.jpg";
+        $pathname = "$CFG->dirroot/user/default/f1.jpg";
     }
 
-    $pathname = "$CFG->dataroot/users/$userid/$image";
     $lastmodified = filemtime($pathname);
 
     header("Last-Modified: " . gmdate("D, d M Y H:i:s", $lastmodified) . " GMT");
     header("Expires: " . gmdate("D, d M Y H:i:s", time() + $lifetime) . " GMT");
     header("Cache-control: max_age = $lifetime"); // a day
     header("Pragma: ");
-    header("Content-Length: ".filesize($pathname));
+    header("Content-disposition: inline; filename=$image");
+    header("Content-length: ".filesize($pathname));
     header("Content-type: image/jpeg");
     readfile("$pathname");