您的位置:首页 > 编程语言 > PHP开发

整合会员资料到phpbb论坛, 实现同步登入登出功能

2009-08-26 17:27 549 查看
論壇會員整合

使用方法: 使用GET 或者 POST 方式傳送資料給 phpbbs.php頁面 并傳遞相關參數信息 .

注意: phpbbs.php文件中 , define('ROOT_PATH', "./phpbb/"); 論壇路徑 "./phpbb/" 是相對于調用當前這個文件 .此設置當前文件是在論壇目錄的上層. 做相應的更改.

一. @功能: 根據會員的信息,將該帳號登入論壇 .

1. 傳送參數: action=login 表示登入的動作. 傳入: 帳號 和密碼 ,密碼為原始密碼

2. 規格例子 : http://localhost:8088/phpbbs.php?action=login&username=zxwo0o&user_password=da789954

二, @功能: 同步將已登入論壇中的帳號登出論壇

1. 傳送參數: action= logout 無需其他參數

2. 規格例子 : http://localhost:8088/phpbbs.php?action=logout

三. @功能: 同步更新論壇中的密碼, 即當會員更改密碼成功之後調用.

1. 傳送參數: action=update_pw . 傳入: 帳號 和密碼 ,密碼為原始密碼

2. 規格例子 : http://localhost:8088/phpbbs.php?action=update_pw&username=zxwo0o&user_password=789954

四. @功能: 添加新用戶到論壇資料庫 . 即註冊了一個會員到論壇.

1. 傳送參數: action=insert_user . 傳入: 帳號 和密碼 ,密碼為原始密碼 . 註冊時間為 當前 Unix 時間戳 . 郵箱 email

2. 規格例子 : http://localhost:8088/together.php?action=insert_user&username=zxw&user_password=da789954&user_regdate=1562345051&user_email=zxxw@hotmail.com

五. @功能: 添加新用戶到論壇資料庫 . 並且登入論壇

1. 傳送參數: action=insert_login . 傳入: 帳號 和密碼 ,密碼為原始密碼 . 註冊時間為 當前 Unix 時間戳 . 郵箱 email

2. 規格例子 : http://localhost:8088/together.php?action=insert_login&username=zxw&user_password=da789954&user_regdate=1562345051&user_email=zxxw@hotmail.com

具体代码如下:

<?php
/**
*  phpbb論壇 安裝需求
MySQL 3.23+/4.0+/4.1+/5.0+
PHP要求的最低版本 4.3.3

調用時注意  因為裏面有用類對象變量  $user  $db  所以不要與這幾個變量重名
*/

define('IN_PHPBB', true);

define('ROOT_PATH', "./phpbb/");     //設置論壇的路徑 即相對調用當前這個文件的路徑=====此處需要修改.

if (!defined('IN_PHPBB') || !defined('ROOT_PATH'))
{
exit();
}
$phpEx = "php";
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
require($phpbb_root_path . 'common.' . $phpEx);

if (isset($_REQUEST['action']))
{
switch ($_REQUEST['action'])
{
case 'login':      //用戶登入論壇
if (!isset($_REQUEST['user_password']) || !isset($_REQUEST['username']))
{
echo "USERINFO_MISSING_login_phpbb!";
break;
}
$users['user_password'] = $_REQUEST['user_password'];
$users['username'] = $_REQUEST['username'];

echo "<br>".$users['username']."   ".$users['user_password'];
$user->session_begin();   //啟動 session
$auth->acl($user->data);  //加載用戶權限  Init permissions
$auth->login($users['username'], $users['user_password'], false, 1, 0);    //將該帳號登入論壇
break;
case 'insert_user':
if (!isset($_REQUEST['username']) || !isset($_REQUEST['user_password']) ||
!isset($_REQUEST['user_regdate']) || !isset($_REQUEST['user_email']) )
{
echo  "USERINFO_MISSING_insert_user_phpbb!";
break;
}
$users['user_password'] = $_REQUEST['user_password'];  //密碼
$users['username'] = $_REQUEST['username'];            //帳號
$users['user_regdate'] = $_REQUEST['user_regdate'];    //註冊時間
$users['user_email'] = $_REQUEST['user_email'];        //email

$sql = "SELECT user_id FROM ".$table_prefix."users WHERE user_id > '0' ORDER BY user_id DESC LIMIT 1";
$result = $db->sql_query($sql);
$row = mysql_fetch_array($result);
$row['user_id'] = $row['user_id']+1;  //取得當前要加入的 正確 ID

$userspw = phpbb_hash($users['user_password']); //將原密碼進行 hash 運算加密 因為phpbb 用的是這種加密方式.否則登入后無法匹配
$sql = "INSERT INTO ".$table_prefix."users (`user_id`, `user_type`, `group_id`, `user_permissions`, `user_perm_from`, `user_ip`, `user_regdate`, `username`, `username_clean`, `user_password`, `user_passchg`, `user_pass_convert`, `user_email`, `user_email_hash`, `user_birthday`, `user_lastvisit`, `user_lastmark`, `user_lastpost_time`, `user_lastpage`, `user_last_confirm_key`, `user_last_search`, `user_warnings`, `user_last_warning`, `user_login_attempts`, `user_inactive_reason`, `user_inactive_time`, `user_posts`, `user_lang`, `user_timezone`, `user_dst`, `user_dateformat`, `user_style`, `user_rank`, `user_colour`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_message_rules`, `user_full_folder`, `user_emailtime`, `user_topic_show_days`, `user_topic_sortby_type`, `user_topic_sortby_dir`, `user_post_show_days`, `user_post_sortby_type`, `user_post_sortby_dir`, `user_notify`, `user_notify_pm`, `user_notify_type`, `user_allow_pm`, `user_allow_viewonline`, `user_allow_viewemail`, `user_allow_massemail`, `user_options`, `user_avatar`, `user_avatar_type`, `user_avatar_width`, `user_avatar_height`, `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, `user_website`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `user_form_salt`)
VALUES ('".$row['user_id']."', '0', '2', '', '0', '', '".$users['user_regdate']."', '".$users['username']."', '".$users['username']."', '".$userspw."', '0', '0', '".$users['user_email']."', '0', '', '0', '0', '0', '', '', '0', '0', '0', '0', '0', '0', '0', 'zh_cmn_hant', '8.00', '0', 'Y-m-d  G:i', '0', '0', '', '0', '0', '0', '0', '-3', '0', '0', 't', 'd', '0', 't', 'a', '0', '1', '0', '1', '1', '1', '1', '895', '', '0', '0', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')";
$db->sql_query($sql);   // 插入 .user 表里的各個字段數據
$sql = "INSERT INTO ".$table_prefix."user_group(`group_id`, `user_id`, `group_leader`, `user_pending`) VALUES ('2', '".$row['user_id']."', '0', '0')";
$db->sql_query($sql);   // 插入 .user_group  表里的各個字段數據
break;
case 'insert_login':
if (!isset($_REQUEST['username']) || !isset($_REQUEST['user_password']) ||
!isset($_REQUEST['user_regdate']) || !isset($_REQUEST['user_email']) )
{
echo  "USERINFO_MISSING_insert_And_login_phpbb!";
break;
}
$users['user_password'] = $_REQUEST['user_password'];  //密碼
$users['username'] = $_REQUEST['username'];            //帳號
$users['user_regdate'] = $_REQUEST['user_regdate'];    //註冊時間
$users['user_email'] = $_REQUEST['user_email'];        //email

$sql = "SELECT user_id FROM ".$table_prefix."users WHERE user_id > '0' ORDER BY user_id DESC LIMIT 1";
$result = $db->sql_query($sql);
$row = mysql_fetch_array($result);
$row['user_id'] = $row['user_id']+1;  //取得當前要加入的 正確 ID

$userspw = phpbb_hash($users['user_password']); //將原密碼進行 hash 運算加密 因為phpbb 用的是這種加密方式.否則登入后無法匹配
$sql = "INSERT INTO ".$table_prefix."users (`user_id`, `user_type`, `group_id`, `user_permissions`, `user_perm_from`, `user_ip`, `user_regdate`, `username`, `username_clean`, `user_password`, `user_passchg`, `user_pass_convert`, `user_email`, `user_email_hash`, `user_birthday`, `user_lastvisit`, `user_lastmark`, `user_lastpost_time`, `user_lastpage`, `user_last_confirm_key`, `user_last_search`, `user_warnings`, `user_last_warning`, `user_login_attempts`, `user_inactive_reason`, `user_inactive_time`, `user_posts`, `user_lang`, `user_timezone`, `user_dst`, `user_dateformat`, `user_style`, `user_rank`, `user_colour`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_message_rules`, `user_full_folder`, `user_emailtime`, `user_topic_show_days`, `user_topic_sortby_type`, `user_topic_sortby_dir`, `user_post_show_days`, `user_post_sortby_type`, `user_post_sortby_dir`, `user_notify`, `user_notify_pm`, `user_notify_type`, `user_allow_pm`, `user_allow_viewonline`, `user_allow_viewemail`, `user_allow_massemail`, `user_options`, `user_avatar`, `user_avatar_type`, `user_avatar_width`, `user_avatar_height`, `user_sig`, `user_sig_bbcode_uid`, `user_sig_bbcode_bitfield`, `user_from`, `user_icq`, `user_aim`, `user_yim`, `user_msnm`, `user_jabber`, `user_website`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `user_form_salt`)
VALUES ('".$row['user_id']."', '0', '2', '', '0', '', '".$users['user_regdate']."', '".$users['username']."', '".$users['username']."', '".$userspw."', '0', '0', '".$users['user_email']."', '0', '', '0', '0', '0', '', '', '0', '0', '0', '0', '0', '0', '0', 'zh_cmn_hant', '8.00', '0', 'Y-m-d  G:i', '0', '0', '', '0', '0', '0', '0', '-3', '0', '0', 't', 'd', '0', 't', 'a', '0', '1', '0', '1', '1', '1', '1', '895', '', '0', '0', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')";
$db->sql_query($sql);   // 插入 .user 表里的各個字段數據
$sql = "INSERT INTO ".$table_prefix."user_group(`group_id`, `user_id`, `group_leader`, `user_pending`) VALUES ('2', '".$row['user_id']."', '0', '0')";
$db->sql_query($sql);   // 插入 .user_group  表里的各個字段數據
// 執行登入動作
$user->session_begin();   //啟動 session
$auth->acl($user->data);  //加載用戶權限  Init permissions
$auth->login($users['username'], $users['user_password'], false, 1, 0);    //將該帳號登入論壇
break;
case 'logout':
$user->session_kill();  //登出語句1 結束會話
$user->session_begin(); //登出語句2 開啟新的會話
break;
case 'update_pw':  //更新用戶密碼
if (!isset($_REQUEST['username']) || !isset($_REQUEST['user_password']))
{
echo "USERINFO_MISSING_update_pw_phpbb!";
break;
}
$users['user_password'] = $_REQUEST['user_password'];  //密碼
$users['username'] = $_REQUEST['username'];            //帳號

$users['user_password'] = phpbb_hash($users['user_password']); //將修改后的密碼進行 hash 運算加密 因為phpbb 用的是這種加密方式.否則登入后無法匹配
$sql = "UPDATE ".$table_prefix."users SET `user_password` = '".$users['user_password']."'  WHERE `username` ='".$users['username']."' LIMIT 1 ;";
$db->sql_query($sql);   // 更新 .user  表里的密碼字段數據
break;
default:
echo  "ERROR_PARAMETER";
}
}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: