annotate usrajax.php @ 93:f36ebd03afd6

User AJAX.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 18 Oct 2013 20:26:03 +0300
parents
children 1b4ae1432989
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
93
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 <?
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 // AJAX request handler backend module
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 $sessionType = "user";
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 require "mconfig.inc.php";
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 require "msite.inc.php";
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 require "msession.inc.php";
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 function stSubmitOneVote($voter_id, $entry_id, $vote)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 $sql = stPrepareSQL("SELECT id FROM votes WHERE voter_id=%d AND entry_id=%d",
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 $voter_id, $entry_id);
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 if (($res = stFetchSQLColumn($sql)) === false)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 $sql = stPrepareSQL(
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 "INSERT INTO votes (voter_id,entry_id,value) VALUES (%d,%d,%d)",
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 $voter_id, $entry_id, $vote);
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 if (stExecSQL($sql) === false)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 return FALSE;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 else
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27 $sql = stPrepareSQL(
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28 "UPDATE votes SET value=%d WHERE voter_id=%d AND entry_id=%d",
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 $vote, $voter_id, $eid);
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 if (stExecSQL($sql) === false)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 return FALSE;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35 return TRUE;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 // Check if we are allowed to execute
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 if (!stUserSessionAuth())
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 stSetupCacheControl();
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 stSessionEnd(SESS_USER);
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 header("Location: news");
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 exit;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 stSetupCacheControl();
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 // Initiate SQL database connection
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 if (!stConnectSQLDB())
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 die("Could not connect to SQL database.");
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 // Fetch non-"hardcoded" settings from SQL database
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 stReloadSettings();
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 // XMLHttp responses
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 $action = "ERROR";
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 if (stChkRequestItem("action") && stChkRequestItem("type"))
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 $action = $_REQUEST["action"];
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 $type = $_REQUEST["type"];
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 switch ($action)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 case "get":
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 // Get specific data
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 switch ($type)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 case "votes":
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 $sql = "SELECT * FROM votes ORDER BY utime DESC";
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 break;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 // Perform query if we need to, output results
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 if (isset($sql) && ($res = stExecSQLCond($sql, "")) !== FALSE)
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 if ($type == "votes")
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91 break;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 case "set":
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95 // Set vote
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 //
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 if ($type == "votes" && stChkRequestItem("voter_id") &&
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 stChkRequestItem("entry_id") && stChkRequestItem("vote"))
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 {
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100 stGetCompoList(FALSE);
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102 stSubmitOneVote(stGetRequestItem("voter_id"), stGetRequestItem("entry_id"), stGetRequestItem("vote"));
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
103 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 else
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105 stSetStatus(902, "No data.");
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106 break;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
108 default:
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109 stSetStatus(404, "Not Found");
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110 break;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113 ?>