SetFields('title', '1','string','The title must be between 3 and 100 characters',array('maxlength'=>100, 'minlength'=>3)); $Err = $Val->ValidateForm($_POST); $ArticleID=$_POST['id']; if($Err) { error($Err); } $P=array(); $P=db_array($_POST); $Article = $Alias->article($ArticleID); list($Revision, $Title, $Body, $CurRead, $CurEdit, $Date, $Author) = array_shift($Article); if($CurEdit > $LoggedUser['EffectiveClass']){ error(403); } if(check_perms('admin_manage_wiki')){ $Read=$_POST['minclassread']; $Edit=$_POST['minclassedit']; if(!is_number($Read)) { error(0); } //int? if(!is_number($Edit)) { error(0); } if($Edit > $LoggedUser['EffectiveClass']){ error('You can\'t restrict articles above your own level.'); } if($Edit < $Read){ $Edit = $Read; } //Human error fix. } $MyRevision=$_POST['revision']; if($MyRevision!=$Revision){ error('This article has already been modified from its original version.'); } $DB->query("INSERT INTO wiki_revisions (ID, Revision, Title, Body, Date, Author) VALUES ('".db_string($ArticleID)."', '".db_string($Revision)."', '".db_string($Title)."', '".db_string($Body)."', '".db_string($Date)."', '".db_string($Author)."')"); $SQL = "UPDATE wiki_articles SET Revision='".db_string($Revision+1)."', Title='$P[title]', Body='$P[body]',"; if($Read && $Edit) { $SQL .= "MinClassRead='$Read', MinClassEdit='$Edit',"; } $SQL .= "Date='".sqltime()."', Author='$LoggedUser[ID]' WHERE ID='$P[id]'"; $DB->query($SQL); $Cache->delete_value('wiki_article_'.$ArticleID); header('Location: wiki.php?action=article&id='.$ArticleID); ?>