Changeset 171

Show
Ignore:
Timestamp:
01-11-10 11:25:08 (3 years ago)
Author:
david.vanenckevort@…
Message:

Duplication of slashes in global_info.inc.php fixed, default for the site URL XSS safe
Reformat of code in gbk.inc.php

Location:
trunk/src/main/core/lib/php
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/main/core/lib/php/gbk.inc.php

    r131 r171  
    7474 
    7575function enumerate_gbk($dir='',$outputtype='') { 
    76     // output types: select, dropdown, species select, species dropdown 
    77     $dumpfile = $_SESSION['globals']['gbk_dump'].$outputtype ; 
    78     if (file_exists($dumpfile)) { 
    79         $diff = (time() - filectime($dumpfile)) /60/60 ; // /60/60/24 = days; /60/60 = hours ; /60 = minutes ; /1 = seconds 
    80         if ($diff > $_SESSION['globals']['gbk_dump_maxage']) { 
    81             unlink($dumpfile) ; 
     76        // output types: select, dropdown, species select, species dropdown 
     77        $dumpfile = $_SESSION['globals']['gbk_dump'].$outputtype ; 
     78        if (file_exists($dumpfile)) { 
     79                $diff = (time() - filectime($dumpfile)) /60/60 ; // /60/60/24 = days; /60/60 = hours ; /60 = minutes ; /1 = seconds 
     80                if ($diff > $_SESSION['globals']['gbk_dump_maxage']) { 
     81                        unlink($dumpfile) ; 
     82                } 
    8283        } 
    83     } 
    84     if (file_exists($dumpfile)) { 
    85         $out = file_get_contents($dumpfile) ; 
    86     } else { 
    87         if (!empty($dir)) { 
    88             if (!preg_match('/\/$/',$dir)) $dir .= '/' ; 
     84        if (file_exists($dumpfile)) { 
     85                $out = file_get_contents($dumpfile) ; 
     86        } else { 
     87                if (!empty($dir)) { 
     88                        if (!preg_match('/\/$/',$dir)) $dir .= '/' ; 
     89                } 
     90                if (!preg_match('/\/$/',$_SESSION['globals']['gbk_dir'])) $_SESSION['globals']['gbk_dir'] .= '/' ; 
     91 
     92                $files = scanfiles($_SESSION['globals']['gbk_dir'],$dir) ; 
     93                sort($files) ; 
     94 
     95                $out = '' ; 
     96 
     97                foreach ($files as $file) { 
     98                        $numcds = 0 ; 
     99                        if (file_exists($_SESSION['globals']['gbk_dir'].$file.'.ok')) { 
     100                                $myFile = $_SESSION['globals']['gbk_dir'].$file.'.ok' ; 
     101                                $fh = fopen($myFile, 'r'); 
     102                                $numcds = fgets($fh); 
     103                                $numcds = chop($numcds) ; 
     104                                fclose($fh); 
     105                        } elseif (file_exists($_SESSION['globals']['gbk_dir'].$file.'.error')) { 
     106                                $myFile = $_SESSION['globals']['gbk_dir'].$dir.$file.'.error' ; 
     107                                $fh = fopen($myFile, 'r'); 
     108                                $numcds = fgets($fh); 
     109                                $numcds = chop($numcds) ; 
     110                                fclose($fh); 
     111                        } 
     112                        if (preg_match('/\.gbk$/',$file) and $numcds > 0) { 
     113                                preg_match('/^(.+)\/(.+)\.gbk$/',$file,$match) ; 
     114                                if ( !empty($match[1]) and !empty($match[2]) ) { 
     115                                        $mydir = preg_replace('/\_/',' ',$match[1]); 
     116                                        $myfile = preg_replace('/\_/',' ',$match[2]); 
     117                                        if ($outputtype == 'select') { 
     118                                                $out .= "<option value='$file'>$mydir ($myfile - $numcds cds)</option>\n" ; 
     119                                        } elseif ($outputtype == 'dropdown') { 
     120                                                $out .= "$mydir ($myfile - $numcds cds)|$file|:" ; 
     121                                        } 
     122                                } 
     123                        } 
     124                } 
     125                write_to_file($dumpfile,'w',$out,'gbk dump') ; 
    89126        } 
    90         if (!preg_match('/\/$/',$_SESSION['globals']['gbk_dir'])) $_SESSION['globals']['gbk_dir'] .= '/' ; 
    91  
    92         $files = scanfiles($_SESSION['globals']['gbk_dir'],$dir) ; 
    93         sort($files) ; 
    94  
    95         $out = '' ; 
    96  
    97         foreach ($files as $file) { 
    98             $numcds = 0 ; 
    99             if (file_exists($_SESSION['globals']['gbk_dir'].$file.'.ok')) { 
    100                 $myFile = $_SESSION['globals']['gbk_dir'].$file.'.ok' ; 
    101                 $fh = fopen($myFile, 'r'); 
    102                 $numcds = fgets($fh); 
    103                 $numcds = chop($numcds) ; 
    104                 fclose($fh); 
    105             } elseif (file_exists($_SESSION['globals']['gbk_dir'].$file.'.error')) { 
    106                 $myFile = $_SESSION['globals']['gbk_dir'].$dir.$file.'.error' ; 
    107                 $fh = fopen($myFile, 'r'); 
    108                 $numcds = fgets($fh); 
    109                 $numcds = chop($numcds) ; 
    110                 fclose($fh); 
    111             } 
    112             if (preg_match('/\.gbk$/',$file) and $numcds > 0) { 
    113                 preg_match('/^(.+)\/(.+)\.gbk$/',$file,$match) ; 
    114                 if ( !empty($match[1]) and !empty($match[2]) ) { 
    115                     $mydir = preg_replace('/\_/',' ',$match[1]) ; 
    116                     $myfile = preg_replace('/\_/',' ',$match[2]) ; 
    117                     if ($outputtype == 'select') { 
    118                         $out .= "<option value='$file'>$mydir ($myfile - $numcds cds)</option>\n" ; 
    119                     } elseif ($outputtype == 'dropdown') { 
    120                         $out .= "$mydir ($myfile - $numcds cds)|$file|:" ; 
    121                     } 
    122                 } 
    123             } 
    124         } 
    125         write_to_file($dumpfile,'w',$out,'gbk dump') ; 
    126     } 
    127     return $out ; 
     127        return $out ; 
    128128} // enumerate_gbk 
    129129 
  • trunk/src/main/core/lib/php/global_info.inc.php

    r169 r171  
    6262 
    6363// These are hardcoded to subdirectories under the main fgweb directory 
    64 $_SESSION['globals']['www_work_url'] = $_SESSION['globals']['www_root_url'].'work/'; 
    65 $_SESSION['globals']['www_lib_url'] = $_SESSION['globals']['www_root_url'].'lib/'; 
     64$_SESSION['globals']['www_work_url'] = $_SESSION['globals']['www_root_url'].'/work/'; 
     65$_SESSION['globals']['www_lib_url'] = $_SESSION['globals']['www_root_url'].'/lib/'; 
    6666$_SESSION['globals']['php_lib_url'] = $_SESSION['globals']['www_lib_url'].'php/'; 
    6767$_SESSION['globals']['css_dir'] = realpath($_SESSION['globals']['www_lib'].'css').'/';