maybe a problem with rights on store.php file ? try with 644

On Fri, Apr 24, 2009 at 7:20 PM, jmtrombley <[email protected]> wrote:
>
> Hey everyone, I was hoping someone could help me out on this.  I'm
> trying to set up a tiddlywiki for my student group website (http://
> groups.ku.edu/~uaa) with uploadplugin and store.php.
> I just got the KU IT folks to enable suexec for my server.  I used
> their instructions and ran their test (https://www2.ku.edu/
> ~webservices/reference/suexec/using.shtml), and everything works fine
> (http://groups.ku.edu/~uaa/cgi-bin/test.shtml).  However, when I
> follow the same directions for store.php, I get the Internal Server
> Error (500) (http://groups.ku.edu/~uaa/cgi-bin/store.php).  If I try
> putting store.php in the same folder as my tiddlywiki file, I just get
> the code for the store.php (http://groups.ku.edu/~uaa/store.php).
> Is there something wrong with the code I'm using (below) or is this a
> flaw with my server?
> Thanks,
> Jeremy
>
> <?php\
> /***\
> ! User settings\
> Edit these lines according to your need\
> ***/\
> //\{\{\{\
> $AUTHENTICATE_USER = true;      // true | false\
> $USERS = array(\
>        'Test1'=>'test1', \
>        'UserName2'=>'Password2', \
>        'UserName3'=>'Password3') // set usernames and strong passwords\
> $DEBUG = false;                         // true | false\
> $CLEAN_BACKUP = true;           // during backuping a file, remove overmuch
> backups\
> $FOLD_JS = true;                        // if javascript files have been 
> expanded during
> download the fold them\
> error_reporting(E_ERROR | E_WARNING | E_PARSE);\
> //\}\}\}\
> /***\
> !Code\
> No change needed under\
> ***/\
> //\{\{\{\
> \
> /***\
>  * store.php - upload a file in this directory\
>  * version :1.6.1 - 2007/08/01 - [email protected]\
>  * \
>  * see : \
>  *      http://tiddlywiki.bidi.info/#UploadPlugin for usage\
>  *      http://www.php.net/manual/en/features.file-upload.php \
>  *              for details on uploading files\
>  * usage : \
>  *      POST  \
>  *              UploadPlugin
> [backupDir=<backupdir>;user=<user>;password=<password>;uploadir=<uploaddir>;
> [debug=1];;]\
>  *              userfile <file>\
>  *      GET\
>  *\
>  * each external javascript file included by download.php is change by
> a reference (src=...)\
>  *\
>  * Revision history\
>  * V1.6.1 - 2007/08/01\
>  * Enhancement: Add javascript folding\
>  * V1.6.0 - 2007/05/17\
>  * Enhancement: Add backup management\
>  * V1.5.2 - 2007/02/13\
>  * Enhancement: Add optional debug option in client parameters\
>  * V1.5.1 - 2007/02/01\
>  * Enhancement: Check value of file_uploads in php.ini. Thanks to
> Didier Corbi\'e8re\
>  * V1.5.0 - 2007/01/15\
>  * Correct: a bug in moving uploadFile in uploadDir thanks to DaniGuti
> \'e9rrez for reporting\
>  * Refactoring\
>  * V 1.4.3 - 2006/10/17 \
>  * Test if $filename.lock exists for GroupAuthoring compatibility\
>  * return mtime, destfile and backupfile after the message line\
>  * V 1.4.2 - 2006/10/12\
>  *  add error_reporting(E_PARSE);\
>  * v 1.4.1 - 2006/03/15\
>  *      add chmo 0664 on the uploadedFile\
>  * v 1.4 - 2006/02/23\
>  *      add uploaddir option :  a path for the uploaded file relative to
> the current directory\
>  *      backupdir is a relative path\
>  *      make recusively directories if necessary for backupDir and uploadDir
> \
>  * v 1.3 - 2006/02/17\
>  *      presence and value of user are checked with $USERS Array (thanks to
> PauloSoares)\
>  * v 1.2 - 2006/02/12 \
>  *     POST  \
>  *              UploadPlugin
> [backupDir=<backupdir>;user=<user>;password=<password>;]\
>  *              userfile <file>\
> *       if $AUTHENTICATE_USER\
>  *              presence and value of user and password are checked with \
>  *              $USER and $PASSWORD\
>  * v 1.1 - 2005/12/23 \
>  *      POST  UploadPlugin[backupDir=<backupdir>]  userfile <file>\
>  * v 1.0 - 2005/12/12 \
>  *      POST userfile <file>\
>  *\
>  * Copyright (c) [email protected] 2005-2007\
>  ***/\
> //\}\}\}\
> \
> //\{\{\{\
> \
> if ($_SERVER['REQUEST_METHOD'] == 'GET') \{\
>        /*\
>         * GET Request\
>         */\
> ?>\
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\
> <html>\
>        <head>\
>                <meta http-equiv="Content-Type" 
> content="text/html;charset=utf-8" >\
>                <title>BidiX.info - TiddlyWiki UploadPlugin - Store 
> script</title>\
>        </head>\
>        <body>\
>                <p>\
>                <p>store.php V 1.6.1\
>                <p>[email protected]\
>                <p>&nbsp;</p>\
>                <p>&nbsp;</p>\
>                <p>&nbsp;</p>\
>                <p align="center">This page is designed to upload a <a 
> href="http://
> www.tiddlywiki.com/">TiddlyWiki<a>.</p>\
>                <p align="center">for details see : <a href="http://
> TiddlyWiki.bidix.info/#HowToUpload">TiddlyWiki.bidix.info/
> #HowToUpload<a>.</p>    \
>        </body>\
> </html>\
> <?php\
> exit;\
> \}\
> \
> /*\
>  * POST Request\
>  */\
>         \
> // Recursive mkdir\
> function mkdirs($dir) \{\
>        if( is_null($dir) || $dir === "" )\{\
>                return false;\
>        \}\
>        if( is_dir($dir) || $dir === "/" )\{\
>                return true;\
>        \}\
>        if( mkdirs(dirname($dir)) )\{\
>                return mkdir($dir);\
>        \}\
>        return false;\
> \}\
> \
> function toExit() \{\
>        global $DEBUG, $filename, $backupFilename, $options;\
>        if ($DEBUG) \{\
>                echo ("\\nHere is some debugging info : \\n");\
>                echo("\\$filename : $filename \\n");\
>                echo("\\$backupFilename : $backupFilename \\n");\
>                print ("\\$_FILES : \\n");\
>                print_r($_FILES);\
>                print ("\\$options : \\n");\
>                print_r($options);\
> \}\
> exit;\
> \}\
> \
> function ParseTWFileDate($s) \{\
>        // parse date element\
>        preg_match ( '/^(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)\\.(\\d\\d)(\\d\\d)(\\d\
> \d)/', $s , $m );\
>        // make a date object\
>        $d = mktime($m[4], $m[5], $m[6], $m[2], $m[3], $m[1]);\
>        // get the week number\
>        $w = date("W",$d);\
> \
>        return array(\
>                'year' => $m[1], \
>                'mon' => $m[2], \
>                'mday' => $m[3], \
>                'hours' => $m[4], \
>                'minutes' => $m[5], \
>                'seconds' => $m[6], \
>                'week' => $w);\
> \}\
> \
> function cleanFiles($dirname, $prefix) \{\
>        $now = getdate();\
>        $now['week'] = date("W");\
> \
>        $hours = Array();\
>        $mday = Array();\
>        $year = Array();\
>        \
>        $toDelete = Array();\
> \
>        // need files recent first\
>        $files = Array();\
>        ($dir = opendir($dirname)) || die ("can't open dir '$dirname'");\
>        while (false !== ($file = readdir($dir))) \{\
>                if (preg_match("/^$prefix/", $file))\
>        array_push($files, $file);\
>    \}\
>        $files = array_reverse($files);\
>        \
>        // decides for each file\
>        foreach ($files as $file) \{\
>                $fileTime = ParseTWFileDate(substr($file,strpos($file, 
> '.')+1,strrpos
> ($file,'.') - strpos($file, '.') -1));\
>                if (($now['year'] == $fileTime['year']) &&\
>                        ($now['mon'] == $fileTime['mon']) &&\
>                        ($now['mday'] == $fileTime['mday']) &&\
>                        ($now['hours'] == $fileTime['hours']))\
>                                continue;\
>                elseif (($now['year'] == $fileTime['year']) &&\
>                        ($now['mon'] == $fileTime['mon']) &&\
>                        ($now['mday'] == $fileTime['mday'])) \{\
>                                if (isset($hours[$fileTime['hours']]))\
>                                        array_push($toDelete, $file);\
>                                else \
>                                        $hours[$fileTime['hours']] = true;\
>                        \}\
>                elseif  (($now['year'] == $fileTime['year']) &&\
>                        ($now['mon'] == $fileTime['mon'])) \{\
>                                if (isset($mday[$fileTime['mday']]))\
>                                        array_push($toDelete, $file);\
>                                else\
>                                        $mday[$fileTime['mday']] = true;\
>                        \}\
>                else \{\
>                        if (isset($year[$fileTime['year']][$fileTime['mon']]))\
>                                array_push($toDelete, $file);\
>                        else\
>                                $year[$fileTime['year']][$fileTime['mon']] = 
> true;\
>                \}\
>        \}\
>        return $toDelete;\
> \}\
> \
> function replaceJSContentIn($content) \{\
>        if (preg_match ("/(.*?)<!--DOWNLOAD-INSERT-FILE:\\"(.*?)\\"--><script\
> \s+type=\\"text\\/javascript\\">(.*)/ms", $content,$matches)) \{\
>                $front = $matches[1];\
>                $js = $matches[2];\
>                $tail = $matches[3];\
>                if (preg_match ("/<\\/script>(.*)/ms", $tail,$matches2)) \{    
>          \
>                        $tail = $matches2[1];\
>                \}\
>                $jsContent = "<script type=\\"text/javascript\\" 
> src=\\"$js\\"></
> script>";\
>                $tail = replaceJSContentIn($tail);\
>                return($front.$jsContent.$tail);\
>        \}\
>        else\
>                return $content;\
> \}\
> \
> // Check if file_uploads is active in php config\
> if (ini_get('file_uploads') != '1') \{\
>   echo "Error : File upload is not active in php.ini\\n";\
>   toExit();\
> \}\
> \
> // var definitions\
> $uploadDir = './';\
> $uploadDirError = false;\
> $backupError = false;\
> $optionStr = $_POST['UploadPlugin'];\
> $optionArr=explode(';',$optionStr);\
> $options = array();\
> $backupFilename = '';\
> $filename = $_FILES['userfile']['name'];\
> $destfile = $filename;\
> \
> // get options\
> foreach($optionArr as $o) \{\
>        list($key, $value) = split('=', $o);\
>        $options[$key] = $value;\
> \}\
> \
> // debug activated by client\
> if ($options['debug'] == 1) \{\
>        $DEBUG = true;\
> \}\
> \
> // authenticate User\
> if (($AUTHENTICATE_USER)\
>        && ((!$options['user']) || (!$options['password']) || ($USERS[$options
> ['user']] != $options['password']))) \{\
>        echo "Error : UserName or Password do not match \\n";\
>        echo "UserName : [".$options['user']. "] Password : [". $options
> ['password'] . "]\\n";\
>        toExit();\
> \}\
> \
> \
> \
> // make uploadDir\
> if ($options['uploaddir']) \{\
>        $uploadDir = $options['uploaddir'];\
>        // path control for uploadDir   \
>    if (!(strpos($uploadDir, "../") === false)) \{\
>        echo "Error: directory to upload specifies a parent folder";\
>        toExit();\
>        \}\
>        if (! is_dir($uploadDir)) \{\
>                mkdirs($uploadDir);\
>        \}\
>        if (! is_dir($uploadDir)) \{\
>                echo "UploadDirError : $uploadDirError - File NOT uploaded 
> !\\n";\
>                toExit();\
>        \}\
>        if ($uploadDir\{strlen($uploadDir)-1\} != '/') \{\
>                $uploadDir = $uploadDir . '/';\
>        \}\
> \}\
> $destfile = $uploadDir . $filename;\
> \
> // backup existing file\
> if (file_exists($destfile) && ($options['backupDir'])) \{\
>        if (! is_dir($options['backupDir'])) \{\
>                mkdirs($options['backupDir']);\
>                if (! is_dir($options['backupDir'])) \{\
>                        $backupError = "backup mkdir error";\
>                \}\
>        \}\
>        $backupFilename = $options['backupDir'].'/'.substr($filename, 0,
> strrpos($filename, '.'))\
>                                
> .date('.Ymd.His').substr($filename,strrpos($filename,'.'));\
>        rename($destfile, $backupFilename) or ($backupError = "rename error");
> \
>        // remove overmuch backup\
>        if ($CLEAN_BACKUP) \{\
>                $toDelete = cleanFiles($options['backupDir'], 
> substr($filename, 0,
> strrpos($filename, '.')));\
>                foreach ($toDelete as $file) \{\
>                        $f = $options['backupDir'].'/'.$file;\
>                        if($DEBUG) \{\
>                                echo "delete : 
> ".$options['backupDir'].'/'.$file."\\n";\
>                        \}\
>                        unlink($options['backupDir'].'/'.$file);\
>                \}\
>        \}\
> \}\
> \
> // move uploaded file to uploadDir\
> if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destfile)) \
> {\
>        if ($FOLD_JS) \{\
>                // rewrite the file to replace JS content\
>                $fileContent = file_get_contents ($destfile);\
>                $fileContent = replaceJSContentIn($fileContent);\
>                if (!$handle = fopen($destfile, 'w')) \{\
>                 echo "Cannot open file ($destfile)";\
>                 exit;\
>            \}\
>            if (fwrite($handle, $fileContent) === FALSE) \{\
>                echo "Cannot write to file ($destfile)";\
>                exit;\
>            \}\
>            fclose($handle);\
>        \}\
>    \
>        chmod($destfile, 0644);\
>        if($DEBUG) \{\
>                echo "Debug mode \\n\\n";\
>        \}\
>        if (!$backupError) \{\
>                echo "0 - File successfully loaded in " .$destfile. "\\n";\
>        \} else \{\
>                echo "BackupError : $backupError - File successfully loaded in 
> " .
> $destfile. "\\n";\
>        \}\
>        echo("destfile:$destfile \\n");\
>        if (($backupFilename) && (!$backupError)) \{\
>                echo "backupfile:$backupFilename\\n";\
>        \}\
>        $mtime = filemtime($destfile);\
>        echo("mtime:$mtime");\
> \} \
> else \{\
>        echo "Error : " . $_FILES['error']." - File NOT uploaded !\\n";\
> \
> \}\
> toExit();\
> //\}\}\}\
> ?>}
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/TiddlyWiki?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to