how to use the same user data for phpbb 3 and other site

Discuss features as they are added to the new version. Give us your feedback. Don't post bug reports, feature requests, support questions or suggestions here.
Forum rules
Discuss features as they are added to the new version. Give us your feedback. Don't post bug reports, feature requests, support questions or suggestions here. Feature requests are closed.
Post Reply
huyhoa
Registered User
Posts: 1
Joined: Sat Aug 11, 2007 3:33 pm

how to use the same user data for phpbb 3 and other site

Post by huyhoa »

I have a problem, i want use the same user data for mysite and phpbb3 forum.
I have a site music at http://music.abc.com and i will install forum phpbb3 at http://music.abc.com/forum/
AT music.abc.com (i call music site) i have a data to store user like media_user with this field:

Code: Select all

CREATE TABLE IF NOT EXISTS `media_user` (
  `user_id` int(5) NOT NULL auto_increment,
  `user_name` varchar(50) NOT NULL default '',
  `user_diachi` varchar(500) NOT NULL,
  `user_password` varchar(50) NOT NULL default '',
  `user_new_password` varchar(15) NOT NULL default '',
  `user_email` varchar(100) default NULL,
  `user_sex` char(1) NOT NULL default '0',
  `user_hide_info` varchar(32) NOT NULL default '',
  `user_regdate` varchar(12) NOT NULL default '',
  `user_level` tinyint(1) NOT NULL default '1',
  `user_playlist_id` varchar(20) NOT NULL default '',
  `user_online` tinyint(1) NOT NULL default '0',
  `user_ip` varchar(15) NOT NULL default '',
  `user_identifier` varchar(32) default NULL,
  `user_timeout` varchar(12) default NULL,
  `user_lastvisit` varchar(12) NOT NULL default '',
  `user_ten` varchar(255) NOT NULL,
  PRIMARY KEY  (`user_id`)
And this use this to register.php:

Code: Select all

  <?php
if (!defined('IN_MEDIA')) die("Hacking attempt");
if ($isLoggedIn) {
	echo "<center><b>Bạn đã đăng nhập</b></center>";
	exit();
}
if ($_POST['reg']) {
	$warn = '';
	$name = m_htmlchars(stripslashes(trim(urldecode($_POST['name']))));
	$diachi = m_htmlchars(stripslashes(trim(urldecode($_POST['diachi']))));
	$ten = m_htmlchars(stripslashes(trim(urldecode($_POST['ten']))));
	$pwd = md5(stripslashes(urldecode($_POST['pwd'])));
	$email = stripslashes(trim(urldecode($_POST['email'])));
	$sec_num = $_POST['sec_num'];
	$sex = ($_POST['sex'])?$_POST['sex']:1;
	//doc chuoi ngau nhien
	$f = fopen("verify.txt", "r");
	$f1 = fread($f, 6);
	
	if ($f1 != $sec_num) $warn .= "Xin loi, Ma bao mat ban nhap vao khong dung !<br>";
	fclose($f);
	
	if ($mysql->num_rows($mysql->query("SELECT user_id FROM ".$tb_prefix."user WHERE user_name = '".$name."'"))) $warn .= "<b><font color=red>Tài khoản này đã có người sử dụng</font></b><br>";
	
	if (!m_check_email($email)) $warn .= "<b><font color=red>Email không hợp lệ</font></b><br>";
	elseif ($mysql->num_rows($mysql->query("SELECT user_id FROM ".$tb_prefix."user WHERE user_email = '".$email."'"))) $warn .= "<b><font color=red>Email này đã có người sử dụng</font></b><br>";
	
	if ($warn) echo "<b>Lỗi</b> : <br>".$warn;
	else {
		$playlist_id = m_random_str(20);
		// Cai cu con de lai $mysql->query("INSERT INTO ".$tb_prefix."user (user_name,user_diachi,user_ten,user_password,user_email,user_sex,user_regdate,user_playlist_id) VALUES ('".$name."','".$diachi."','".$ten."','".$pwd."','".$email."','".$sex."',NOW(),'".$playlist_id."')");
	
	//End o day
	if (m_get_config('sendmailconfirm'))
 {
 $xacnhan = rand(0,10000000000000);
 $web_email = m_get_config('web_email');
         $title = $webTitle." : Kich hoat tai khoan";
         $header = m_build_mail_header($email,$web_email);
         $content = "Chao <b>".$name."</b>,<br>".
             "De su dung het cac chuc nang cua tinhcaviet.com, ban phai kich hoat tai khoan cua minh. Hay nhan vao lien ket xac nhan ben duoi de hoan thanh. Lien ket xac nhan cua ban la: <a href='".$mainURL."/#Confirm,".$xacnhan."'> <b>".$mainURL."/#Confirm,".$xacnhan."</b></a> <br><br><br>".
             "Cam on ban da ghe tham va tham gia www.tinhcaviet.com .<br><br><br>Ban Quản trị Tình Ca Việt <br><br>".
             "<a href='".$mainURL."'><b>".$webTitle."</b></a>";
 if ( mail($email,$title,$content,$header) ) {
 $mysql->query("INSERT INTO ".$tb_prefix."user (user_name,user_diachi,user_ten,user_password,user_email,user_sex,user_regdate,user_playlist_id,user_confirm) VALUES ('".$name."','".$diachi."','".$ten."','".$pwd."','".$email."','".$sex."',NOW(),'".$playlist_id."','".$xacnhan."')");
 }
 else 
 {
 echo 'Host không hỗ trợ gửi Mail';
 }
 }
 else
 {
 $mysql->query("UPDATE ".$tb_prefix."online SET reg_check = '' WHERE ip ='".$ip."'");
$mysql->query("INSERT INTO ".$tb_prefix."user (user_name,user_password,user_email,user_sex,user_regdate,user_playlist_id,user_activated) VALUES ('".$name."','".$pwd."','".$email."','".$sex."',NOW(),'".$playlist_id."','1')");
 }
 }
	exit();
}
$main = $tpl->get_tpl('register');
$tpl->parse_tpl($main);
?>
This for login in login.php:

Code: Select all

<?php
if (!defined('IN_MEDIA')) die("Hacking attempt");
if ($isLoggedIn) {
	echo "<center><b>Bạn đã đăng nhập</b></center>";
	exit();
}
if ($_POST['login']) {
	$warn = '';
	$name = m_htmlchars(stripslashes(trim(urldecode($_POST['name']))));
	$pwd = stripslashes(urldecode($_POST['pwd']));
	$q = $mysql->query("SELECT user_id FROM ".$tb_prefix."user WHERE user_name = '".$name."' AND user_password = '".md5($pwd)."'");
	if (!$mysql->num_rows($q)) {
		if (m_check_random_str($pwd,15))
			$q = $mysql->query("SELECT user_id FROM ".$tb_prefix."user WHERE user_name = '".$name."' AND (user_new_password = '".$pwd."' AND user_new_password != '')");
		if (!$mysql->num_rows($q))	
			$warn .= "Username hoặc mật khẩu không chính xác<br>";
	}
	if ($warn) echo "<b>Lỗi</b> : <br>".$warn;
	else {
		$r = $mysql->fetch_array($q);
		$_SESSION['user_id'] = $r['user_id'];
		$salt = 'Nothing';
		$identifier = md5($salt.IP.$r['user_id'].$salt);
		$timeout = NOW + 2*60*60;
		m_setcookie('USER', $identifier);
		$mysql->query("DELETE FROM ".$tb_prefix."online WHERE sid = '".SID."'");
		$mysql->query("UPDATE ".$tb_prefix."user SET user_online = 1, user_ip = '".IP."', user_identifier = '".$identifier."', user_timeout = '".$timeout."' WHERE user_id = '".$r['user_id']."'");
	}
	exit();
}
else {
	$main = $tpl->get_tpl('login');
	$tpl->parse_tpl($main);
}
?>
This is logout.php

Code: Select all

<?php
if (!defined('IN_MEDIA')) die("Hacking attempt");
if (!$isLoggedIn) {
	echo "<center><b>Bạn chưa đăng nhập</b></center>";
}
else {
	$mysql->query("UPDATE ".$tb_prefix."user SET user_lastvisit = '".NOW."', user_identifier = '', user_timeout = '', user_ip = '', user_online = 0 WHERE user_id = '".$_SESSION['user_id']."'");
	m_setcookie('INFO', '', false);
	session_destroy();
}
?>
This is funtion checklogin in include/funtions.php

Code: Select all

function m_checkLogin(){
	global $mysql, $tb_prefix;
	$time_exit = NOW;
	$mysql->query("UPDATE ".$tb_prefix."user SET user_lastvisit = user_timeout, user_identifier = '', user_timeout = '', user_ip = '', user_online = 0 WHERE user_timeout < ".$time_exit." AND user_timeout > 0");
	
	if ($_COOKIE['USER']) {
		$identifier = $_COOKIE['USER'];
		$q = $mysql->query("SELECT user_identifier, user_id FROM ".$tb_prefix."user WHERE user_online = 1 AND user_ip = '".IP."' AND user_identifier = '".$identifier."'");
		if ($mysql->num_rows($q)) {
			$r = $mysql->fetch_array($q);
			$_SESSION['user_id'] = $r['user_id'];
			$mysql->query("UPDATE ".$tb_prefix."user SET user_timeout = ".(NOW + 2*60*60)." WHERE user_id = '".$_SESSION['user_id']."'");
			$return = true;
		}
		else $return = false;
	}
	else $return = false;

	if ($return == false) {
		if ($_COOKIE['INFO']) m_setcookie('INFO', '', false);
		unset($_SESSION['user_id']);
	}
	return $return;
}

Ohhh, forgot, this is in index.php

Code: Select all

include('includes/functions.php');
include('includes/class_template.php');

$tpl =& new Template;

$isLoggedIn = m_checkLogin();

if ($_POST['reg']) {
	include('register.php');
	exit();
}
elseif ($_POST['login']) {
	include('login.php');
	exit();
}
elseif ($_POST['change_info'] && $isLoggedIn) {
	include('user.php');
	exit();
}
elseif ($_POST['forgot'] && $_POST['email']) {
	include('user.php');
	exit();
}
elseif ($_POST['reloadPlaylist']) {
	include('playlist.php');
	exit();
}

$value = array();
if ($url) {
	$value = split(',',$url);
	if (($value[0] != 'Download') && $_GET['url']) exit();
}
else {
	// ONLINE
	if (!$isLoggedIn) {
		$num = $mysql->num_rows($mysql->query("SELECT sid FROM ".$tb_prefix."online WHERE sid = '".SID."'"));
		if ($num == 0) $mysql->query("INSERT INTO ".$tb_prefix."online (timestamp, sid, ip) VALUES ('".NOW."', '".SID."', '".IP."')");
		else $mysql->query("UPDATE ".$tb_prefix."online SET timestamp='".NOW."',ip='".IP."' WHERE sid='".SID."'");
	}
	// TEMPLATE
	if (!$_COOKIE['MEDIA_TPL'] || $reset_tpl) {
		$default_tpl = m_get_config('default_tpl');
		m_setcookie('MEDIA_TPL', $default_tpl);
		$_COOKIE['MEDIA_TPL'] = $default_tpl;
		if ($reset_tpl) m_refresh();
	}
	if ($change_tpl) {
		if ($tpl_name)
			m_setcookie('MEDIA_TPL', $tpl_name);
		m_refresh();
	}
	$month = date('m',NOW);
	$current_month = m_get_config('current_month');
	if ($month != $current_month) {
		$mysql->query("UPDATE ".$tb_prefix."data SET m_viewed_month = 0, m_downloaded_month = 0");
		$mysql->query("UPDATE ".$tb_prefix."config SET config_value = ".$month." WHERE config_name = 'current_month'");
	}
}

if ($value[0] == 'Broken' && is_numeric($value[1])) {
	$id = (int)$value[1];
	$mysql->query("UPDATE ".$tb_prefix."data SET m_is_broken = 1 WHERE m_id = ".$id);
	die(1);
}

//active nick to download
if (($value[0] == 'Download') && is_numeric($value[1]) && $value[2]) {
 if (!$isLoggedIn && m_get_config('must_login_to_download')) {
  header("Content-Disposition: attachment; filename = Ban_chua_dang_nhap.txt");
  echo "Login to download music";
  exit();
}
  if (m_get_config('must_login_to_download'))
 {
 $userid = $_SESSION['user_id'];
 if ($userid)
 {
     $tinhcavietnam = $mysql->query("SELECT * FROM ".$tb_prefix."user WHERE user_id IN (".$userid.")");
             while ($tinhca = $mysql->fetch_array($tinhcavietnam)) {
 $uractivated = $tinhca['user_activated'];
 }
     if ($isLoggedIn && !$uractivated) {
         header("Content-Disposition: attachment; filename = Ban_chua_kich_hoat_tai_khoan.txt");
         echo "Active members to download music";
         exit();
 
     }
 }
 }
 //end here
 	if ($value[2] == m_encode($value[1])) {
		$r = $mysql->fetch_array($mysql->query("SELECT m_url, m_is_local, m_is_local2 FROM ".$tb_prefix."data WHERE m_id = '".$value[1]."'"));
		if ($r) {
			$mysql->query("UPDATE ".$tb_prefix."data SET m_downloaded = m_downloaded + 1, m_downloaded_month = m_downloaded_month + 1 WHERE m_id = '".$value[1]."'");
		 if ($r['m_is_local'] == 1) {
                $url = ($r['m_is_local'])?$mediaFolder.'/'.$r['m_url']:$r['m_url'];
            }
            else {$url = ($r['m_is_local2'])?$mediaFolder2.'/'.$r['m_url']:$r['m_url'];
            }
			
			header("Location: ".$url);
		}
		exit();
	}
	else { die('copyright here'); }
}

// -------------------
if (!in_array($value[0],array('Register','Login','Forgot_Password','Change_Info'))) {
	$current_page =& $_SESSION['current_page'];
	if ($current_page != $url) $_SESSION['last_page'] = $current_page;
	$current_page = $url;
}

$_SESSION['current_tpl'] = $_COOKIE['MEDIA_TPL'];


....
if (in_array($value[0],array('List','Home','Top_Download','Top_Play')))
	include('list.php');
///////////////
elseif ($value[0] == 'Play_Playlist')
	include('playlist.php');
elseif ($value[0] == 'Register')
	include('register.php');
elseif ($value[0] == 'Login')
	include('login.php');
elseif ($value[0] == 'Logout')
	include('logout.php');
elseif ($value[0] == 'Gift')
	include('gift_receive.php');
elseif ($value[0] == 'Finishreg')
     include('finishreg.php');
elseif (in_array($value[0],array('User','List_User','Change_Info','Forgot_Password','Confirm')))
	include('user.php');
elseif ($value[0] == 'Play' && is_numeric($value[1])) {
	if (!$isLoggedIn && m_get_config('must_login_to_play')) {
		die("<b><center>Login to listen</center></b>");
	}
	if (m_get_config('must_login_to_play'))
 {
 $userid = $_SESSION['user_id'];
 if ($userid)
 {
     $tinhcavietnam = $mysql->query("SELECT * FROM ".$tb_prefix."user WHERE user_id IN (".$userid.")");
             while ($tinhca = $mysql->fetch_array($tinhcavietnam)) {
 $uractivated = $tinhca['user_activated'];
 }
     if ($isLoggedIn && !$uractivated) {
die("<b><center>Login to listen</center></b>");
     }
 }
 }
	$q = $mysql->query("SELECT * FROM ".$tb_prefix."data WHERE m_id = '$value[1]'");
	if (!$mysql->num_rows($q)) {
		die("<center><b>This is invalid music id.</b></center>");
	}
I remove something dont need.
Now i want use this in phpbb3 forum user data. Prefix of data forum is phpbb_
and prefix for music data is media_

I think register.php file of music will dont user and only use phpbb3 forum register and when music site login, it will check at phpbb_users in phpbb forum data. Help me to creat a login file and check_login_funtions.
Please help me. Thank in advance

Post Reply