Example #1
0
         $DB->query('DELETE FROM `' . $Prefix . 'posts` WHERE ID=?', array($ID));
         $DB->query('DELETE FROM `' . $Prefix . 'notifications` WHERE PostID=?', array($ID));
         //更新全站统计数据
         $NewConfig = array("NumPosts" => $Config["NumPosts"] - 1);
         UpdateConfig($NewConfig);
         //更新主题统计数据
         $DB->query("UPDATE `" . $Prefix . "topics` SET Replies=Replies-1 WHERE `ID`=?", array($PostInfo['TopicID']));
         //更新用户自身统计数据
         $DB->query("UPDATE `" . $Prefix . "users` SET Replies=Replies-1 WHERE `ID`=?", array($PostInfo['UserID']));
         $Message = $Lang['Permanently_Deleted'];
         break;
         //编辑帖子
     //编辑帖子
     case 'Edit':
         Auth(4, $PostInfo['UserID'], true);
         $Content = XssEscape(Request('POST', 'Content', $PostInfo['Content']));
         if ($Content == $PostInfo['Content']) {
             AlertMsg($Lang['Do_Not_Modify'], $Lang['Do_Not_Modify']);
         }
         if ($DB->query("UPDATE " . $Prefix . "posts SET Content = :Content Where ID=:ID", array('ID' => $ID, 'Content' => $Content))) {
             //标记附件所对应的帖子标签
             $DB->query("UPDATE `" . $Prefix . "upload` SET PostID=? WHERE `PostID`=0 and `UserName`=?", array($ID, $CurUserName));
             $Message = $Lang['Edited'];
         } else {
             AlertMsg($Lang['Failure_Edit'], $Lang['Failure_Edit']);
         }
         break;
     default:
         AlertMsg('Bad Request', 'Bad Request');
         break;
 }
Example #2
0
 if ($NewTags) {
     foreach ($NewTags as $Name) {
         $DB->query("INSERT INTO `" . $Prefix . "tags` \r\n\t\t\t\t\t\t\t(`ID`, `Name`,`Followers`,`Icon`,`Description`, `IsEnabled`, `TotalPosts`, `MostRecentPostTime`, `DateCreated`) \r\n\t\t\t\t\t\t\tVALUES (?,?,?,?,?,?,?,?,?)", array(null, htmlspecialchars(trim($Name)), 0, 0, null, 1, 1, $TimeStamp, $TimeStamp));
         $TagsID[] = $DB->lastInsertId();
     }
     //更新全站统计数据
     $NewConfig = array("NumTags" => $Config["NumTags"] + count($NewTags));
     //var_dump($NewTags);
 }
 $TagsArray = array_merge($TagsExist, $NewTags);
 //往Topics表插入数据
 $TopicData = array("ID" => null, "Topic" => htmlspecialchars($Title), "Tags" => implode("|", $TagsArray), "UserID" => $CurUserID, "UserName" => $CurUserName, "LastName" => "", "PostTime" => $TimeStamp, "LastTime" => $TimeStamp, "IsGood" => 0, "IsTop" => 0, "IsLocked" => 0, "IsDel" => 0, "IsVote" => 0, "Views" => 0, "Replies" => 0, "Favorites" => 0, "RatingSum" => 0, "TotalRatings" => 0, "LastViewedTime" => 0, "PostsTableName" => null, "ThreadStyle" => "", "Lists" => "", "ListsTime" => $TimeStamp, "Log" => "");
 $NewTopicResult = $DB->query("INSERT INTO `" . $Prefix . "topics` \r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t`ID`, \r\n\t\t\t\t\t\t`Topic`, \r\n\t\t\t\t\t\t`Tags`, \r\n\t\t\t\t\t\t`UserID`, \r\n\t\t\t\t\t\t`UserName`, \r\n\t\t\t\t\t\t`LastName`, \r\n\t\t\t\t\t\t`PostTime`, \r\n\t\t\t\t\t\t`LastTime`, \r\n\t\t\t\t\t\t`IsGood`, \r\n\t\t\t\t\t\t`IsTop`, \r\n\t\t\t\t\t\t`IsLocked`, \r\n\t\t\t\t\t\t`IsDel`, \r\n\t\t\t\t\t\t`IsVote`, \r\n\t\t\t\t\t\t`Views`, \r\n\t\t\t\t\t\t`Replies`, \r\n\t\t\t\t\t\t`Favorites`, \r\n\t\t\t\t\t\t`RatingSum`, \r\n\t\t\t\t\t\t`TotalRatings`, \r\n\t\t\t\t\t\t`LastViewedTime`, \r\n\t\t\t\t\t\t`PostsTableName`, \r\n\t\t\t\t\t\t`ThreadStyle`, \r\n\t\t\t\t\t\t`Lists`, \r\n\t\t\t\t\t\t`ListsTime`, \r\n\t\t\t\t\t\t`Log`\r\n\t\t\t\t\t) \r\n\t\t\t\t\tVALUES \r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t:ID,\r\n\t\t\t\t\t\t:Topic,\r\n\t\t\t\t\t\t:Tags,\r\n\t\t\t\t\t\t:UserID,\r\n\t\t\t\t\t\t:UserName,\r\n\t\t\t\t\t\t:LastName,\r\n\t\t\t\t\t\t:PostTime,\r\n\t\t\t\t\t\t:LastTime,\r\n\t\t\t\t\t\t:IsGood,\r\n\t\t\t\t\t\t:IsTop,\r\n\t\t\t\t\t\t:IsLocked,\r\n\t\t\t\t\t\t:IsDel,\r\n\t\t\t\t\t\t:IsVote,\r\n\t\t\t\t\t\t:Views,\r\n\t\t\t\t\t\t:Replies,\r\n\t\t\t\t\t\t:Favorites,\r\n\t\t\t\t\t\t:RatingSum,\r\n\t\t\t\t\t\t:TotalRatings,\r\n\t\t\t\t\t\t:LastViewedTime,\r\n\t\t\t\t\t\t:PostsTableName,\r\n\t\t\t\t\t\t:ThreadStyle,\r\n\t\t\t\t\t\t:Lists,\r\n\t\t\t\t\t\t:ListsTime,\r\n\t\t\t\t\t\t:Log\r\n\t\t\t\t\t)", $TopicData);
 $TopicID = $DB->lastInsertId();
 //往Posts表插入数据
 $PostData = array("ID" => null, "TopicID" => $TopicID, "IsTopic" => 1, "UserID" => $CurUserID, "UserName" => $CurUserName, "Subject" => htmlspecialchars($Title), "Content" => XssEscape($Content), "PostIP" => $CurIP, "PostTime" => $TimeStamp);
 $NewPostResult = $DB->query("INSERT INTO `" . $Prefix . "posts` \r\n\t\t\t\t\t(`ID`, `TopicID`, `IsTopic`, `UserID`, `UserName`, `Subject`, `Content`, `PostIP`, `PostTime`) \r\n\t\t\t\t\tVALUES (:ID,:TopicID,:IsTopic,:UserID,:UserName,:Subject,:Content,:PostIP,:PostTime)", $PostData);
 $PostID = $DB->lastInsertId();
 if ($NewTopicResult && $NewPostResult) {
     //更新全站统计数据
     $NewConfig = array("NumTopics" => $Config["NumTopics"] + 1, "DaysTopics" => $Config["DaysTopics"] + 1);
     UpdateConfig($NewConfig);
     //更新用户自身统计数据
     UpdateUserInfo(array("Topics" => $CurUserInfo['Topics'] + 1, "LastPostTime" => $TimeStamp));
     //标记附件所对应的帖子标签
     $DB->query("UPDATE `" . $Prefix . "upload` SET PostID=? WHERE `PostID`=0 and `UserName`=?", array($PostID, $CurUserName));
     //记录标签与TopicID的对应关系
     foreach ($TagsID as $TagID) {
         $DB->query("INSERT INTO `" . $Prefix . "posttags` \r\n\t\t\t\t\t\t\t(`TagID`, `TopicID`, `PostID`) \r\n\t\t\t\t\t\t\tVALUES (?,?,?)", array($TagID, $TopicID, $PostID));
     }
     //更新标签统计数据
Example #3
0
        AlertMsg($Lang['Topic_Has_Been_Locked'], $Lang['Topic_Has_Been_Locked']);
    }
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (!ReferCheck($_POST['FormHash'])) {
        AlertMsg($Lang['Error_Unknown_Referer'], $Lang['Error_Unknown_Referer'], 403);
    }
    if ($TimeStamp - $CurUserInfo['LastPostTime'] <= 5) {
        //发帖至少要间隔5秒
        AlertMsg($Lang['Posting_Too_Often'], $Lang['Posting_Too_Often']);
    }
    $Content = Request('Post', 'Content');
    if ($Content) {
        if (strlen($Content) <= $Config['MaxPostChars']) {
            //往Posts表插入数据
            $PostData = array("ID" => null, "TopicID" => $TopicID, "IsTopic" => 0, "UserID" => $CurUserID, "UserName" => $CurUserName, "Subject" => $Topic['Topic'], "Content" => XssEscape($Content), "PostIP" => $CurIP, "PostTime" => $TimeStamp, "IsDel" => 0);
            $NewPostResult = $DB->query("INSERT INTO `" . $Prefix . "posts`(`ID`, `TopicID`, `IsTopic`, `UserID`, `UserName`, `Subject`, `Content`, `PostIP`, `PostTime`, `IsDel`) VALUES (:ID,:TopicID,:IsTopic,:UserID,:UserName,:Subject,:Content,:PostIP,:PostTime,:IsDel)", $PostData);
            $PostID = $DB->lastInsertId();
            if ($NewPostResult) {
                //更新全站统计数据
                $NewConfig = array("NumPosts" => $Config["NumPosts"] + 1, "DaysPosts" => $Config["DaysPosts"] + 1);
                UpdateConfig($NewConfig);
                //更新主题统计数据
                $DB->query("UPDATE `" . $Prefix . "topics` SET Replies=Replies+1,LastTime=?,LastName=? WHERE `ID`=?", array($TimeStamp > $Topic['LastTime'] ? $TimeStamp : $Topic['LastTime'], $CurUserName, $TopicID));
                //更新用户自身统计数据
                UpdateUserInfo(array("Replies" => $CurUserInfo['Replies'] + 1, "LastPostTime" => $TimeStamp));
                //标记附件所对应的帖子标签
                $DB->query("UPDATE `" . $Prefix . "upload` SET PostID=? WHERE `PostID`=0 and `UserName`=?", array($PostID, $CurUserName));
                //添加提醒消息
                AddingNotifications($Content, $TopicID, $PostID, $Topic['UserName']);
                if ($CurUserID != $Topic['UserID']) {