pointscp.php
来自「这是php编的论坛的原代码」· PHP 代码 · 共 330 行
PHP
330 行
<?php
/***************************************************************************
* pointscp.php
* -------------------
* begin : Sunday, April 14, 2002
* copyright : (C) 2002 Bulletin Board Mods
* email : ssjslim@yahoo.com
*
* $Id: pointscp.php,v 1.1.1.1 2003/02/11 22:27:28 wei.gao Exp $
*
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', 1);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.' . $phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
// -----------------------
// Page specific functions
//
function get_user_points($user_id)
{
global $db;
$sql = "SELECT user_points
FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not get user_points from $user_id.", '', __LINE__, __FILE__, $sql);
}
$points = $db->sql_fetchrow($result);
return $points['user_points'];
}
//----------
function get_username_from_id($user_id)
{
global $db;
$sql = "SELECT username FROM " . USERS_TABLE . "
WHERE user_id = $user_id AND user_id != " . ANONYMOUS;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not get username from $user_id.", '', __LINE__, __FILE__, $sql);
}
$username = $db->sql_fetchrow($result);
return $username['username'];
}
//----------
function get_userid_from_name($username)
{
global $db;
$username = str_replace("\'", "''", trim($username));
$sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE username = '$username' AND user_id != " . ANONYMOUS;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not get user_id from $username.", '', __LINE__, __FILE__, $sql);
}
$user_id = $db->sql_fetchrow($result);
return $user_id['user_id'];
}
//
// End page specific functions
// ---------------------------
if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
{
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
$mode = '';
}
$user_id = ( isset($HTTP_GET_VARS[POST_USERS_URL]) ) ? intval($HTTP_GET_VARS[POST_USERS_URL]) : 0;
$template->set_filenames(array(
'body' => 'points_system.tpl')
);
//Start
if( $mode == 'donate' )
{
if( !$userdata['session_logged_in'] )
{
$redirect = "pointscp.$phpEx&mode=donate";
$redirect .= ( isset($user_id) ) ? '&' . POST_USERS_URL . '=' . $user_id : '';
header('Location: ' . append_sid("login.$phpEx?redirect=$redirect", true));
}
if( !$board_config['points_donate'] )
{
message_die(GENERAL_MESSAGE, $lang['Points_user_donation_off']);
}
if( isset($HTTP_POST_VARS['submit']) )
{
if( !empty($HTTP_POST_VARS['username']) )
{
$user_id = get_userid_from_name($HTTP_POST_VARS['username']);
if( empty($user_id) )
{
$error = true;
$error_msg = $lang['No_such_user'];
}
if( $user_id == $userdata['user_id'] )
{
$error = true;
$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . sprintf($lang['Points_cant_donate_self'], $board_config['points_name']);
}
}
else
{
$error = true;
$error_msg = $lang['Points_no_username'];
}
if( isset($error) )
{
$template->set_filenames(array(
'reg_header' => 'error_body.tpl')
);
$template->assign_vars(array(
'ERROR_MESSAGE' => $error_msg)
);
$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
}
else
{
$amount = abs( intval($HTTP_POST_VARS['amount']) );
$from_points = get_user_points($userdata['user_id']);
if( $amount > $from_points )
{
message_die(GENERAL_MESSAGE, sprintf($lang['Points_cant_donate'], $board_config['points_name']));
}
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points + $amount
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update user's points", '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points - $amount
WHERE user_id = " . $userdata['user_id'];
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update user's points", '', __LINE__, __FILE__, $sql);
}
$loc = ( !empty($HTTP_POST_VARS['location']) ) ? $HTTP_POST_VARS['location'] : append_sid("pointscp.$phpEx?mode=donate");
$template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="3;url=' . $loc . '">')
);
$msg = $lang['Points_thanks_donation'] . '<br /><br />' . sprintf($lang['Click_return_points_donate'], '<a href="' . append_sid("pointscp.$phpEx?mode=donate") . '">', '</a> ') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $msg);
}
}
$s_username = ( !empty($user_id) ) ? get_username_from_id($user_id) : '';
$location = ( empty($HTTP_POST_VARS['location']) ) ? $HTTP_SERVER_VARS['HTTP_REFERER'] : $location;
$s_hidden_fields = '<input type="hidden" name="location" value="' . $location . '">';
$template->assign_vars(array(
'L_FIND_USERNAME' => $lang['Find_username'],
'L_SUBMIT' => $lang['Submit'],
'L_RESET' => $lang['Reset'],
'L_POINTS_TITLE' => $lang['Points_donation'],
'L_DONATE_TO' => sprintf($lang['Points_donate_to'], $board_config['points_name']),
'L_AMOUNT' => $lang['Points_amount'],
'L_AMOUNT_GIVE' => sprintf($lang['Points_give'], $board_config['points_name']),
'USERNAME' => $s_username,
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_POST_ACTION' => append_sid("pointscp.$phpEx?mode=donate", true),
'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"))
);
$template->assign_block_vars('switch_points_donate', array());
}
else
{
if ( !$userdata['session_logged_in'] )
{
$redirect = "pointscp.$phpEx";
$redirect .= ( isset($user_id) ) ? '&user_id=' . $user_id : '';
header('Location: ' . append_sid("login.$phpEx?redirect=$redirect", true));
}
$is_auth = array(ADMIN);
if( in_array($userdata['user_level'], $is_auth) == false )
{
message_die(GENERAL_MESSAGE, $lang['Points_not_admin']);
}
if( isset($HTTP_POST_VARS['submit']) )
{
if( !empty($HTTP_POST_VARS['username']) )
{
$user_id = get_userid_from_name($HTTP_POST_VARS['username']);
if( empty($user_id) )
{
$error = true;
$error_msg = $lang['No_such_user'];
}
}
else
{
$error = true;
$error_msg .= $lang['Points_no_username'];
}
if( isset($error) )
{
$template->set_filenames(array(
'reg_header' => 'error_body.tpl')
);
$template->assign_vars(array(
'ERROR_MESSAGE' => $error_msg)
);
$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
}
else
{
$amount = abs( intval($HTTP_POST_VARS['amount']) );
$points = get_user_points($user_id);
if( !$HTTP_POST_VARS['method'] )
{
if( ($points - $amount) < 0 )
{
message_die(GENERAL_MESSAGE, sprintf($lang['Points_cant_take'], $board_config['points_name']));
}
}
$method_sql = ( $HTTP_POST_VARS['method'] ) ? '+' : '-';
$sql = "UPDATE " . USERS_TABLE . "
SET user_points = user_points $method_sql $amount
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Could not update user's points", '', __LINE__, __FILE__, $sql);
}
$loc = ( isset($HTTP_POST_VARS['location']) && !empty($HTTP_POST_VARS['location']) ) ? $HTTP_POST_VARS['location'] : append_sid("pointscp.$phpEx?mode=donate");
$template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="3;url=' . $loc . '">')
);
$msg = sprintf($lang['Points_user_updated'], $board_config['points_name']) . '<br /><br />' . sprintf($lang['Click_return_pointscp'], '<a href="' . append_sid("pointscp.$phpEx") . '">', '</a> ') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $msg);
}
}
$s_username = ( !empty($user_id) ) ? get_username_from_id($user_id) : '';
$location = ( !isset($HTTP_POST_VARS['location']) ) ? $HTTP_SERVER_VARS['HTTP_REFERER'] : $location;
$s_hidden_fields = '<input type="hidden" name="location" value="' . $location . '">';
$template->assign_vars(array(
'L_FIND_USERNAME' => $lang['Find_username'],
'L_ADD' => $lang['Add'],
'L_SUBTRACT' => $lang['Subtract'],
'L_SUBMIT' => $lang['Submit'],
'L_RESET' => $lang['Reset'],
'L_POINTS_TITLE' => $lang['Points_cp'],
'L_AMOUNT' => $lang['Points_amount'],
'L_AMOUNT_GIVE_TAKE' => sprintf($lang['Points_give_take'], $board_config['points_name']),
'L_METHOD' => $lang['Points_method'],
'L_ADD_SUBTRACT' => sprintf($lang['Points_add_subtract'], $board_config['points_name']),
'USERNAME' => $s_username,
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_POST_ACTION' => append_sid("pointscp.$phpEx", true),
'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"))
);
$template->assign_block_vars('switch_points_cp', array());
}
//
// Start output of page
//
$page_title = $lang['Points_sys'];
include($phpbb_root_path . 'includes/page_header.' . $phpEx);
//
// Generate the page
//
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.' . $phpEx);
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?