~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to www/php/phpBB3/report.php

  • Committer: David Coles
  • Date: 2010-08-30 03:26:13 UTC
  • Revision ID: coles.david@gmail.com-20100830032613-d14vng0jkelniu3l
python-console: Fix globals broken with new JSON library.

simplejson always returns unicode strings. cJSON would return ordinary strings 
if possible. cPickle.loads() only accepts strings. At present we use pickle 
version 0 so they should all works as ASCII strings. Higher versions of pickle 
are not plain ASCII and are likely to break this and so this should be fixed 
at some point.

Also replaced unconditional exception with one that catches Pickle errors. Not 
sure the best way to report failures of these functions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/**
3
 
*
4
 
* @package phpBB3
5
 
* @version $Id: report.php,v 1.39 2007/10/05 14:30:06 acydburn Exp $
6
 
* @copyright (c) 2005 phpBB Group
7
 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
8
 
*
9
 
*/
10
 
 
11
 
/**
12
 
* @ignore
13
 
*/
14
 
define('IN_PHPBB', true);
15
 
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
16
 
$phpEx = substr(strrchr(__FILE__, '.'), 1);
17
 
include($phpbb_root_path . 'common.' . $phpEx);
18
 
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
19
 
 
20
 
// Start session management
21
 
$user->session_begin();
22
 
$auth->acl($user->data);
23
 
$user->setup('mcp');
24
 
 
25
 
$forum_id               = request_var('f', 0);
26
 
$post_id                = request_var('p', 0);
27
 
$reason_id              = request_var('reason_id', 0);
28
 
$report_text    = utf8_normalize_nfc(request_var('report_text', '', true));
29
 
$user_notify    = ($user->data['is_registered']) ? request_var('notify', 0) : false;
30
 
 
31
 
$submit = (isset($_POST['submit'])) ? true : false;
32
 
 
33
 
if (!$post_id)
34
 
{
35
 
        trigger_error('NO_POST_SELECTED');
36
 
}
37
 
 
38
 
$redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;p=$post_id") . "#p$post_id";
39
 
 
40
 
// Has the report been cancelled?
41
 
if (isset($_POST['cancel']))
42
 
{
43
 
        redirect($redirect_url);
44
 
}
45
 
 
46
 
// Grab all relevant data
47
 
$sql = 'SELECT t.*, p.*
48
 
        FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . " t
49
 
        WHERE p.post_id = $post_id
50
 
                AND p.topic_id = t.topic_id";
51
 
$result = $db->sql_query($sql);
52
 
$report_data = $db->sql_fetchrow($result);
53
 
$db->sql_freeresult($result);
54
 
 
55
 
if (!$report_data)
56
 
{
57
 
        trigger_error('POST_NOT_EXIST');
58
 
}
59
 
 
60
 
$forum_id = (int) ($report_data['forum_id']) ? $report_data['forum_id'] : $forum_id;
61
 
$topic_id = (int) $report_data['topic_id'];
62
 
 
63
 
$sql = 'SELECT *
64
 
        FROM ' . FORUMS_TABLE . '
65
 
        WHERE forum_id = ' . $forum_id;
66
 
$result = $db->sql_query($sql);
67
 
$forum_data = $db->sql_fetchrow($result);
68
 
$db->sql_freeresult($result);
69
 
 
70
 
if (!$forum_data)
71
 
{
72
 
        trigger_error('FORUM_NOT_EXIST');
73
 
}
74
 
 
75
 
// Check required permissions
76
 
$acl_check_ary = array('f_list' => 'POST_NOT_EXIST', 'f_read' => 'USER_CANNOT_READ', 'f_report' => 'USER_CANNOT_REPORT');
77
 
 
78
 
foreach ($acl_check_ary as $acl => $error)
79
 
{
80
 
        if (!$auth->acl_get($acl, $forum_id))
81
 
        {
82
 
                trigger_error($error);
83
 
        }
84
 
}
85
 
unset($acl_check_ary);
86
 
 
87
 
if ($report_data['post_reported'])
88
 
{
89
 
        $message = $user->lang['ALREADY_REPORTED'];
90
 
        $message .= '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
91
 
        trigger_error($message);
92
 
}
93
 
 
94
 
// Submit report?
95
 
if ($submit && $reason_id)
96
 
{
97
 
        $sql = 'SELECT *
98
 
                FROM ' . REPORTS_REASONS_TABLE . "
99
 
                WHERE reason_id = $reason_id";
100
 
        $result = $db->sql_query($sql);
101
 
        $row = $db->sql_fetchrow($result);
102
 
        $db->sql_freeresult($result);
103
 
 
104
 
        if (!$row || (!$report_text && strtolower($row['reason_title']) == 'other'))
105
 
        {
106
 
                trigger_error('EMPTY_REPORT');
107
 
        }
108
 
 
109
 
        $sql_ary = array(
110
 
                'reason_id'             => (int) $reason_id,
111
 
                'post_id'               => $post_id,
112
 
                'user_id'               => (int) $user->data['user_id'],
113
 
                'user_notify'   => (int) $user_notify,
114
 
                'report_closed' => 0,
115
 
                'report_time'   => (int) time(),
116
 
                'report_text'   => (string) $report_text
117
 
        );
118
 
 
119
 
        $sql = 'INSERT INTO ' . REPORTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
120
 
        $db->sql_query($sql);
121
 
        $report_id = $db->sql_nextid();
122
 
 
123
 
        if (!$report_data['post_reported'])
124
 
        {
125
 
                $sql = 'UPDATE ' . POSTS_TABLE . '
126
 
                        SET post_reported = 1
127
 
                        WHERE post_id = ' . $post_id;
128
 
                $db->sql_query($sql);
129
 
        }
130
 
 
131
 
        if (!$report_data['topic_reported'])
132
 
        {
133
 
                $sql = 'UPDATE ' . TOPICS_TABLE . '
134
 
                        SET topic_reported = 1
135
 
                        WHERE topic_id = ' . $report_data['topic_id'] . '
136
 
                                OR topic_moved_id = ' . $report_data['topic_id'];
137
 
                $db->sql_query($sql);
138
 
        }
139
 
 
140
 
        meta_refresh(3, $redirect_url);
141
 
 
142
 
        $message = $user->lang['POST_REPORTED_SUCCESS'] . '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>');
143
 
        trigger_error($message);
144
 
}
145
 
 
146
 
// Generate the reasons
147
 
display_reasons($reason_id);
148
 
 
149
 
$template->assign_vars(array(
150
 
        'REPORT_TEXT'           => $report_text,
151
 
        'S_REPORT_ACTION'       => append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&amp;p=' . $post_id),
152
 
 
153
 
        'S_NOTIFY'                      => $user_notify,
154
 
        'S_CAN_NOTIFY'          => ($user->data['is_registered']) ? true : false)
155
 
);
156
 
 
157
 
generate_forum_nav($forum_data);
158
 
 
159
 
// Start output of page
160
 
page_header($user->lang['REPORT_POST']);
161
 
 
162
 
$template->set_filenames(array(
163
 
        'body' => 'report_body.html')
164
 
);
165
 
 
166
 
page_footer();
167
 
 
168
 
?>
 
 
b'\\ No newline at end of file'