Changeset 171


Ignore:
Timestamp:
Nov 1, 2010, 11:25:08 AM (6 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 edited

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').'/';
Note: See TracChangeset for help on using the changeset viewer.