X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/a54d82cfe83e06b814af2fff2a3da3e7b42674be..28665e987ef8be35ce4f7082bd7aa5c91371397a:/edit/page/index.php diff --git a/edit/page/index.php b/edit/page/index.php index 6c123af..99c8cd4 100644 --- a/edit/page/index.php +++ b/edit/page/index.php @@ -44,9 +44,10 @@ if ($_FILES) { if (!$_POST) abort("niets te doen", '405 post error'); -$filename = trim($Page->path, '/') ?: 'index'; -if (preg_match('{^\.}', $filename)) - abort("ongeldige bestandsnaam: $filename", '403 input error'); +$request = trim($Page->path, '/') ?: 'index'; +if (preg_match('{^\.}', $request)) + abort("ongeldige bestandsnaam: $request", '403 input error'); +$filename = $request; if (is_dir($filename) && !file_exists("$filename.html")) $filename .= '/index'; $filename .= '.html'; @@ -68,11 +69,14 @@ if (!strlen($upload)) { if (!file_exists(dirname($filename)) and !mkdir(dirname($filename), 0777, TRUE)) abort("fout bij aanmaken van map voor $filename", '500 save error'); +if (file_exists($filename) and file_get_contents($filename) === $upload) + abort('niet aangepast', '200 unaltered'); + if (!file_put_contents($filename, $upload)) abort("fout bij schrijven van $filename", '500 save error'); -if (is_writable('../.git')) { - $gitmsg = preg_replace('/\.html$/', '', $filename).": edit from {$_SERVER['REMOTE_ADDR']}"; +if (is_writable('.git')) { + $gitmsg = "$request: edit from {$_SERVER['REMOTE_ADDR']}"; $gitcmd = 'git'; $gitcmd .= ' -c user.name='.escapeshellarg($User->name ?: $User->login); $gitcmd .= ' -c user.email='.escapeshellarg($User->email ?: "{$User->login}@lijtweg.nl");