fixed warning caused by missing fields in $course; tweaked mime info for firefox when forcing download - it should use default system mime associations which should be safe in case of firefox.

This commit is contained in:
skodak 2006-09-20 17:51:59 +00:00
parent 741c4d0b04
commit ba4e0b059d
3 changed files with 17 additions and 7 deletions

View File

@ -34,9 +34,7 @@
}
// security: limit access to existing course subdirectories
// note: course ID must be specified
// note: the lang field is needed for the course language switching hack in weblib.php
if (!$course = get_record_sql("SELECT id, lang FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'")) {
if (!$course = get_record_sql("SELECT * FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'")) {
error('Invalid course ID');
}

View File

@ -217,8 +217,10 @@ function send_file($path, $filename, $lifetime=86400 , $filter=0, $pathisstring=
global $CFG;
// Use given MIME type if specified, otherwise guess it using mimeinfo.
// Always use application/x-forcedownload if that's requested.
$mimetype = $forcedownload ? 'application/x-forcedownload' :
// IE, Konqueror and Opera open html file directly in browser from web even when directed to save it to disk :-O
// only Firefox saves all files locally before opening when content-disposition: attachment stated
$isFF = check_browser_version('Firefox', '1.5'); // only FF > 1.5 properly tested
$mimetype = ($forcedownload and !$isFF) ? 'application/x-forcedownload' :
($mimetype ? $mimetype : mimeinfo('type', $filename));
$lastmodified = $pathisstring ? time() : filemtime($path);
$filesize = $pathisstring ? strlen($path) : filesize($path);

View File

@ -5126,6 +5126,16 @@ function check_php_version($version='4.1.0') {
switch ($brand) {
case 'Firefox': /// Mozilla Firefox browsers
if (preg_match("/Firefox\/([0-9\.]+)/i", $agent, $match)) {
if (version_compare($match[1], $version) >= 0) {
return true;
}
}
break;
case 'Gecko': /// Gecko based browsers
if (substr_count($agent, 'Camino')) {