/[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.4 by sysadm, Tue Mar 18 03:52:17 2025 UTC Revision 1.9 by sysadm, Wed Apr 23 04:51:55 2025 UTC
# Line 1  Line 1 
1  <?  <?php
2          require_once "./common_lib.inc.php";          require_once "../lib/db_open.inc.php";
3            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  $db_conn=include "./db_open.inc.php";                          "code" => 0,
13                            "message" => "",
14  $rs=mysql_query("select TID,SID from bbs where".                          "errorFields" => array(),
15          " AID=$id and visible=0");                  )
16  if($row=mysql_fetch_array($rs))          );
17  {  
18          $tid=$row["TID"];          header("Content-Type:application/json; charset=utf-8");
19          $sid=$row["SID"];  
20  }          if (!isset($_SESSION["BBS_uid"]) || $_SESSION["BBS_uid"] == 0)
21  else          {
22  {                  $result_set["return"]["code"] = -1;
23          $tid=-1;                  $result_set["return"]["message"] = "没有登录";
24          $sid=-1;  
25  }                  mysqli_close($db_conn);
26  mysql_free_result($rs);                  exit(json_encode($result_set));
27            }
28  if (!($_SESSION["BBS_priv"]->checkpriv($sid,S_POST) &&  
29          ($_SESSION["BBS_priv"]->checkpriv($sid,S_MAN_S))))          // Begin transaction
30  {          $rs = mysqli_query($db_conn, "SET autocommit=0");
31          error_msg("您无权恢复此文章!",true);          if ($rs == false)
32          exit();          {
33  }                  $result_set["return"]["code"] = -2;
34                    $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
35  mysql_query("update bbs set visible=1,m_del=0 where AID=$id")  
36          or die("Delete article error!");                  mysqli_close($db_conn);
37                    exit(json_encode($result_set));
38  //Add log          }
39  article_op_log($id,$_SESSION["BBS_uid"],'S',Client_Address(),$db_conn)          
40          or die("Add log error!");          $rs = mysqli_query($db_conn, "BEGIN");
41            if ($rs == false)
42  //Set last reply date          {
43  if ($tid!=0)                  $result_set["return"]["code"] = -2;
44  {                  $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
45          mysql_query("update bbs set reply_count=reply_count+1 where aid=$tid")  
46                  or die("Update article error!");                  mysqli_close($db_conn);
47  }                  exit(json_encode($result_set));
48            }
49  mysql_close($db_conn);  
50    
51  if ($tid==0)          $sql = "SELECT TID, SID, visible, m_del FROM bbs WHERE AID = $id FOR UPDATE";
52  {  
53          header ("Location: view_article.php?id=$id");          $rs = mysqli_query($db_conn, $sql);
54  }          if ($rs == false)
55  else          {
56  {                  $result_set["return"]["code"] = -2;
57          header ("Location: view_article?id=$tid#$id");                  $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