/[LeafOK_CVS]/fenglin/bbs/restore.php
ViewVC logotype

Diff of /fenglin/bbs/restore.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.5 by sysadm, Fri Mar 28 05:55:16 2025 UTC Revision 1.9 by sysadm, Wed Apr 23 04:51:55 2025 UTC
# Line 1  Line 1 
1  <?  <?php
2          require_once "../lib/db_open.inc.php";          require_once "../lib/db_open.inc.php";
3          require_once "./common_lib.inc.php";          require_once "./article_op.inc.php";
4          require_once "./session_init.inc.php";          require_once "./session_init.inc.php";
5  ?>  
6  <?          $data = json_decode(file_get_contents("php://input"), true);
7  if (isset($_GET["id"]))  
8          $id=intval($_GET["id"]);          $id = (isset($data["id"]) ? intval($data["id"]) : 0);
9  else  
10          $id=0;          $result_set = array(
11                    "return" => array(
12  $rs=mysql_query("select TID,SID from bbs where".                          "code" => 0,
13          " AID=$id and visible=0");                          "message" => "",
14  if($row=mysql_fetch_array($rs))                          "errorFields" => array(),
15  {                  )
16          $tid=$row["TID"];          );
17          $sid=$row["SID"];  
18  }          header("Content-Type:application/json; charset=utf-8");
19  else  
20  {          if (!isset($_SESSION["BBS_uid"]) || $_SESSION["BBS_uid"] == 0)
21          $tid=-1;          {
22          $sid=-1;                  $result_set["return"]["code"] = -1;
23  }                  $result_set["return"]["message"] = "没有登录";
24  mysql_free_result($rs);  
25                    mysqli_close($db_conn);
26  if (!($_SESSION["BBS_priv"]->checkpriv($sid,S_POST) &&                  exit(json_encode($result_set));
27          ($_SESSION["BBS_priv"]->checkpriv($sid,S_MAN_S))))          }
28  {  
29          error_msg("您无权恢复此文章!",true);          // Begin transaction
30          exit();          $rs = mysqli_query($db_conn, "SET autocommit=0");
31  }          if ($rs == false)
32            {
33  mysql_query("update bbs set visible=1,m_del=0 where AID=$id")                  $result_set["return"]["code"] = -2;
34          or die("Delete article error!");                  $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
35    
36  //Add log                  mysqli_close($db_conn);
37  article_op_log($id,$_SESSION["BBS_uid"],'S',client_addr(),$db_conn)                  exit(json_encode($result_set));
38          or die("Add log error!");          }
39            
40  //Set last reply date          $rs = mysqli_query($db_conn, "BEGIN");
41  if ($tid!=0)          if ($rs == false)
42  {          {
43          mysql_query("update bbs set reply_count=reply_count+1 where aid=$tid")                  $result_set["return"]["code"] = -2;
44                  or die("Update article error!");                  $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
45  }  
46                    mysqli_close($db_conn);
47  mysql_close($db_conn);                  exit(json_encode($result_set));
48            }
49  if ($tid==0)  
50  {  
51          header ("Location: view_article.php?id=$id");          $sql = "SELECT TID, SID, visible, m_del FROM bbs WHERE AID = $id FOR UPDATE";
52  }  
53  else          $rs = mysqli_query($db_conn, $sql);
54  {          if ($rs == false)
55          header ("Location: view_article?id=$tid#$id");          {
56  }                  $result_set["return"]["code"] = -2;
57                    $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
58    
59                    mysqli_close($db_conn);
60                    exit(json_encode($result_set));
61            }
62    
63            if($row = mysqli_fetch_array($rs))
64            {
65                    $tid = $row["TID"];
66                    $sid = $row["SID"];
67                    $visible = $row["visible"];
68                    $m_del = $row["m_del"];
69            }
70            else
71            {
72                    $result_set["return"]["code"] = -1;
73                    $result_set["return"]["message"] = "文章不存在";
74    
75                    mysqli_close($db_conn);
76                    exit(json_encode($result_set));
77            }
78            mysqli_free_result($rs);
79    
80            // Check if already restored
81            if ($visible)
82            {
83                    $result_set["return"]["code"] = 1;
84                    $result_set["return"]["message"] = "已设置";
85    
86                    mysqli_close($db_conn);
87                    exit(json_encode($result_set));
88            }
89    
90            if (!$m_del)
91            {
92                    $result_set["return"]["code"] = -1;
93                    $result_set["return"]["message"] = "主动删帖不可恢复";
94    
95                    mysqli_close($db_conn);
96                    exit(json_encode($result_set));
97            }
98    
99            if (!$_SESSION["BBS_priv"]->checkpriv($sid, S_POST | S_MAN_S))
100            {
101                    $result_set["return"]["code"] = -1;
102                    $result_set["return"]["message"] = "没有权限";
103    
104                    mysqli_close($db_conn);
105                    exit(json_encode($result_set));
106            }
107    
108            if ($tid != 0)
109            {
110                    $sql = "SELECT AID FROM bbs WHERE AID = $tid AND visible = 1 FOR UPDATE";
111    
112                    $rs = mysqli_query($db_conn, $sql);
113                    if ($rs == false)
114                    {
115                            $result_set["return"]["code"] = -2;
116                            $result_set["return"]["message"] = "Query topic error: " . mysqli_error($db_conn);
117            
118                            mysqli_close($db_conn);
119                            exit(json_encode($result_set));
120                    }
121            
122                    if (mysqli_num_rows($rs) == 0)
123                    {
124                            $result_set["return"]["code"] = -1;
125                            $result_set["return"]["message"] = "需要先恢复主题";
126            
127                            mysqli_close($db_conn);
128                            exit(json_encode($result_set));
129                    }
130    
131                    mysqli_free_result($rs);
132            }
133    
134            $sql = "UPDATE bbs SET visible = 1, m_del = 0 WHERE AID = $id";
135    
136            $rs = mysqli_query($db_conn, $sql);
137            if ($rs == false)
138            {
139                    $result_set["return"]["code"] = -2;
140                    $result_set["return"]["message"] = "Delete article error: " . mysqli_error($db_conn);
141    
142                    mysqli_close($db_conn);
143                    exit(json_encode($result_set));
144            }
145    
146            //Add log
147            $rs = article_op_log($id, $_SESSION["BBS_uid"], "S", client_addr(), $db_conn);
148            if ($rs == false)
149            {
150                    $result_set["return"]["code"] = -2;
151                    $result_set["return"]["message"] = "Add log error: " . mysqli_error($db_conn);
152            
153                    mysqli_close($db_conn);
154                    exit(json_encode($result_set));
155            }
156    
157            //Set reply count
158            if ($tid != 0)
159            {
160                    $sql = "UPDATE bbs SET reply_count = reply_count + 1 WHERE AID = $tid";
161    
162                    $rs = mysqli_query($db_conn, $sql);
163                    if ($rs == false)
164                    {
165                            $result_set["return"]["code"] = -2;
166                            $result_set["return"]["message"] = "Update article error: " . mysqli_error($db_conn);
167    
168                            mysqli_close($db_conn);
169                            exit(json_encode($result_set));
170                    }
171            }
172    
173            // Commit transaction
174            $rs = mysqli_query($db_conn, "COMMIT");
175            if ($rs == false)
176            {
177                    $result_set["return"]["code"] = -2;
178                    $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
179    
180                    mysqli_close($db_conn);
181                    exit(json_encode($result_set));
182            }
183    
184            mysqli_close($db_conn);
185            exit(json_encode($result_set));
186  ?>  ?>


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1