function HandlePostNoAuth($pagename) {
  global $WikiDir,$DeleteKeyWord,$RecentChanges,$RCDelimPattern,$Now,
    $TimeFmt,$CurrentTime,$PageFileFmt,$DiffKeepDays,$Author,$PostFields,
    $DiffFunction,$ChangeSummary;
  $CurrentTime = strftime($TimeFmt,$Now);
  foreach($PostFields as $k) {
    if (isset($_POST[$k]))
      $new[$k]=str_replace("\r","",stripmagic($_POST[$k])); 
  }
  Lock(2);
  $pagename = FmtPageName('$PageName',$pagename);
  if ($new['text']==$page['text']) 
    { Redirect($pagename); return; }
  $diffclass=preg_replace('/\\W/','',@$_POST['diffclass']);
  if ($page["time"]>0)  
    $new["diff:$Now:".$page['time'].":$diffclass"] = 
      $DiffFunction($new['text'],$page['text']); 
  $new['author'] = $Author;
  $new["author:$Now"] = $Author;
  $new["host:$Now"] = $_SERVER['REMOTE_ADDR'];
  if ($ChangeSummary) $new["csum:$Now"] = $ChangeSummary;
  foreach($new as $k=>$v) {
    if ($k=='pagename' || $k=='action') continue;
    $page[$k] = $v;
  }
  $keepgmt = $Now-$DiffKeepDays*86400;
  $keys = array_keys($page);
  foreach ($keys as $k) 
    if (preg_match("/^\\w+:(\\d+)/",$k,$match))
      if ($match[1] < $keepgmt) unset($page[$k]);
  $pagefile = FmtPageName($PageFileFmt,$pagename);
  if ($page['text']==$DeleteKeyWord) 
    { @rename("$WikiDir/$pagefile","$WikiDir/$pagefile,$Now"); }
  else WritePage($pagename,$page);
  foreach($RecentChanges as $rcfmt => $pgfmt) {
    $rcname=FmtPageName($rcfmt,$pagename); if (!$rcname) continue;
    $pgtext=FmtPageName($pgfmt,$pagename); if (!$pgtext) continue;
    if (@$seen[$rcname]++) continue;
    $rcpage = ReadPage($rcname,"");
    $rcelim = preg_quote(preg_replace("/$RCDelimPattern.*$/",' ',$pgtext),'/');
    $rcpage['text'] = preg_replace("/[^\n]*$rcelim.*\n/","",$rcpage['text']);
    if (!preg_match("/$RCDelimPattern/",$rcpage['text'])) 
      $rcpage['text'] .= "$pgtext\n";
    else 
      $rcpage['text'] = preg_replace("/([^\n]*$RCDelimPattern.*\n)/",
        "$pgtext\n$1",$rcpage['text'],1);
    WritePage($rcname,$rcpage);
  }
  Redirect($pagename); 
}