| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- function validateZan() {
- if (!validateUInt($_POST['id'])) {
- return false;
- }
- if (!validateInt($_POST['delta'])) {
- return false;
- }
- if ($_POST['delta'] != 1 && $_POST['delta'] != -1) {
- return false;
- }
- if ($_POST['type'] != 'B' && $_POST['type'] != 'BC' && $_POST['type'] != 'P' && $_POST['type'] != 'C') {
- return false;
- }
- return true;
- }
- if (!validateZan()) {
- die('<div class="text-danger">failed</div>');
- }
- if ($myUser == null) {
- die('<div class="text-danger">please <a href="'.HTML::url('/login').'">log in</a></div>');
- }
-
- $id = $_POST['id'];
- $delta = $_POST['delta'];
- $type = $_POST['type'];
-
- switch ($type) {
- case 'B':
- $table_name = 'blogs';
- break;
- case 'BC':
- $table_name = 'blogs_comments';
- break;
- case 'P':
- $table_name = 'problems';
- break;
- case 'C':
- $table_name = 'contests';
- break;
- }
-
- $cur = queryZanVal($id, $type, $myUser);
-
- if ($cur != $delta) {
- $row = DB::selectFirst("select zan from $table_name where id = $id");
- if ($row == null) {
- die('<div class="text-danger">failed</div>');
- }
- $cur += $delta;
- if ($cur == 0) {
- DB::query("delete from click_zans where username = '{$myUser['username']}' and type = '$type' and target_id = $id");
- } elseif ($cur != $delta) {
- DB::query("update click_zans set val = '$cur' where username = '{$myUser['username']}' and type = '$type' and target_id = $id");
- } else {
- DB::query("insert into click_zans (username, type, target_id, val) values ('{$myUser['username']}', '$type', $id, $cur)");
- }
- $cnt = $row['zan'] + $delta;
- DB::query("update $table_name set zan = $cnt where id = $id");
- } else {
- $row = DB::selectFirst("select zan from $table_name where id = $id");
- if ($row == null) {
- die('<div class="text-danger">failed</div>');
- }
- $cnt = $row['zan'];
- }
- ?>
- <?= getClickZanBlock($type, $id, $cnt, $cur) ?>
|