--- fenglin/bbs/set_recommend.php 2004/05/12 00:24:05 1.1
+++ fenglin/bbs/set_recommend.php 2025/04/05 15:18:36 1.10
@@ -1,56 +1,135 @@
+ require_once "../lib/db_open.inc.php";
+ require_once "./common_lib.inc.php";
require_once "./session_init.inc.php";
-?>
-
-if (!isset($HTTP_GET_VARS["id"]))
- $id=0;
-else
- $id=intval($HTTP_GET_VARS["id"]);
-
-if (!isset($HTTP_GET_VARS["set"]))
- exit();
-else
- $set=intval($HTTP_GET_VARS["set"])?1:0;
-
-$db_conn=include "./db_open.inc.php";
-
-$rs=mysql_query("select UID,TID,SID,recommend from bbs where AID=$id and visible and recommend<>$set");
-if($row=mysql_fetch_array($rs))
-{
- $uid=$row["UID"];
- $tid=$row["TID"];
- $sid=$row["SID"];
- $recommend=$row["recommend"];
-}
-else
-{
- exit();
-}
-mysql_free_result($rs);
-
-if (!($_SESSION["BBS_priv"]->checkpriv($sid,S_POST | S_MAN_M) && (
- $_SESSION["BBS_priv"]->checklevel(P_ADMIN_M) ||
- $_SESSION["BBS_priv"]->checklevel(P_ADMIN_S) ||
- $_SESSION["BBS_priv"]->checklevel(P_MAN_C))))
-{
-?>
-
-
- exit();
-}
-mysql_query("update bbs set recommend=$set where AID=$id")
- or die("Set recommend error!");
+ $data = json_decode(file_get_contents("php://input"), true);
+
+ $id = (isset($data["id"]) ? intval($data["id"]) : 0);
+ $set = (isset($data["set"]) && $data["set"] == "1" ? 1 : 0);
-mysql_query("insert delayed into bbs_article_op(AID,UID,type,op_dt,op_ip,complete)".
- " values($id,".$_SESSION["BBS_uid"].",IF($set,'R','N'),now(),'".$_SERVER["REMOTE_ADDR"].
- "',1)")
- or die("Add log error!");
+ $result_set = array(
+ "return" => array(
+ "code" => 0,
+ "message" => "",
+ "errorFields" => array(),
+ )
+ );
+
+ header("Content-Type:application/json; charset=utf-8");
+
+ if (!isset($_SESSION["BBS_uid"]) || $_SESSION["BBS_uid"] == 0)
+ {
+ $result_set["return"]["code"] = -1;
+ $result_set["return"]["message"] = "没有登录";
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ // Begin transaction
+ $rs = mysqli_query($db_conn, "SET autocommit=0");
+ if ($rs == false)
+ {
+ $result_set["return"]["code"] = -2;
+ $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ $rs = mysqli_query($db_conn, "BEGIN");
+ if ($rs == false)
+ {
+ $result_set["return"]["code"] = -2;
+ $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ $sql = "SELECT UID, SID, recommend FROM bbs WHERE AID = $id AND TID = 0 AND visible";
+
+ $rs = mysqli_query($db_conn, $sql);
+ if ($rs == false)
+ {
+ $result_set["return"]["code"] = -2;
+ $result_set["return"]["message"] = "Query article error: " . mysqli_error($db_conn);
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ if($row = mysqli_fetch_array($rs))
+ {
+ $uid = $row["UID"];
+ $sid = $row["SID"];
+ $recommend = $row["recommend"];
+ }
+ else
+ {
+ $result_set["return"]["code"] = -1;
+ $result_set["return"]["message"] = "文章不存在";
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+ mysqli_free_result($rs);
+
+ if (!($_SESSION["BBS_priv"]->checkpriv($sid, S_POST | S_MAN_M) &&
+ $_SESSION["BBS_priv"]->checklevel(P_ADMIN_M | P_ADMIN_S | P_MAN_C)))
+ {
+ $result_set["return"]["code"] = -1;
+ $result_set["return"]["message"] = "没有权限";
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ // Check if already set
+ if ($recommend == $set)
+ {
+ $result_set["return"]["code"] = 1;
+ $result_set["return"]["message"] = "已设置";
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ $sql = "UPDATE bbs SET recommend = $set WHERE AID = $id";
+
+ $rs = mysqli_query($db_conn, $sql);
+ if ($rs == false)
+ {
+ $result_set["return"]["code"] = -2;
+ $result_set["return"]["message"] = "Set recommend error: " . mysqli_error($db_conn);
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ //Add log
+ $rs = article_op_log($id, $_SESSION["BBS_uid"], ($set ? "R" : "N"), client_addr(), $db_conn);
+ if ($rs == false)
+ {
+ $result_set["return"]["code"] = -2;
+ $result_set["return"]["message"] = "Add log error: " . mysqli_error($db_conn);
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
+
+ // Commit transaction
+ $rs = mysqli_query($db_conn, "COMMIT");
+ if ($rs == false)
+ {
+ $result_set["return"]["code"] = -2;
+ $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
+
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
+ }
-mysql_close($db_conn);
+ mysqli_close($db_conn);
+ exit(json_encode($result_set));
?>
-