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';
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");