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); ?>