annotate usrajax.php @ 153:aecf145e7c70

Some work on the voting backend.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 25 Oct 2013 15:07:43 +0300
parents 5837b9333964
children 5b92f130ba87
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 //
101
1b4ae1432989 Comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
3 // User-level AJAX request handler backend module
93
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
123
5837b9333964 Add new "about" page, and setting for default page.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
47 header("Location: ".stGetSetting("defaultPage"));
93
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 //
153
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
95 // Set vote, if voting is enabled
93
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 //
153
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
97 if ($type == "votes" && stChkSetting("allowVoting") &&
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
98 stChkRequestItem("votekey") &&
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
99 stChkRequestItem("entry_id") &&
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
100 stChkRequestItem("vote"))
93
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101 {
153
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
102 // Check if voting is enabled on the compo and voter is valid
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
103 $entry_id = stGetRequestItem("entry_id");
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
104
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
105 $sql = stPrepareSQL("SELECT * FROM votekeys WHERE key=%s", stGetRequestItem("votekey"));
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
106 if (($votekey = stFetchSQLColumn($sql)) !== false)
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
107 {
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
108 }
93
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109
153
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
110
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
111 $sql = stPrepareSQL("SELECT * FROM entries WHERE id=%d", $entry_id);
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
112 if (($entry = stFetchSQL($sql)) !== false)
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
113 {
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
114 if (($compo = stFetchSQL("SELECT * FROM compos WHERE id=".$entry["compo_id"])) !== false
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
115 && $compo["voting"] != 0)
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
116 {
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
117 stSubmitOneVote(stGetRequestItem("voter_id"), $entry_id, stGetRequestItem("vote"));
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
118 }
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
119 else
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
120 stSetStatus(902, "Voting not enabled on that compo.");
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
121 }
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
122 else
aecf145e7c70 Some work on the voting backend.
Matti Hamalainen <ccr@tnsp.org>
parents: 123
diff changeset
123 stSetStatus(902, "No such entry.");
93
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
124 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
125 else
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
126 stSetStatus(902, "No data.");
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
127 break;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129 default:
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130 stSetStatus(404, "Not Found");
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
131 break;
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
132 }
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
133
f36ebd03afd6 User AJAX.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134 ?>