Перейти к контенту

Интеграция с сайтом на 3.0.4 теперь не работает. Что не так?


Рекомендуемые сообщения

Стоит CMS danneo, интеграция с 2.3 нормально, а вот с форумом 3.0.4 теперь не пашет. Подскажите, что изменилось то? Я особо в PHP не понимаю, тем более в авторизации.

Если кому не лень, гляньте файл, как и чего изменить согласно новой версии форума? :D

<?php

if(!defined("DNREAD")) exit();
// Класс : Начало
class userapi{
/* ==================================================== ##
## Настройки интеграции, правьте только их !!!		  ##
## ==================================================== */
var $data = array('prefix'=>'ibf_',											// Таблица пользователей
			   'table'=>'ibf_members',									  // Таблица пользователей
			 //  'tablesess'=>'ibf_sessions',								 // Таблица сессий
			 //  'tableextra'=>'ibf_member_extra',							// Таблица доп.данных пользователя
			   'userid'=>'id',											  // Название ID пользователя в базе
			   'sessexp'=>9600,											 // Срок действия сессии
			   'cookie'=>'',												// Название cookie
			   'cookieexp'=>9600,										   // Срок действия cookie
			   'avatarpath'=>'forum/style_avatars/',
			   'avatarupload'=>'forum/uploads/',
			   'linkreg'=>'forum/index.php?act=Reg&CODE=00',				// Ссылка на регистрацию
			   'linklost'=>'forum/index.php?act=Reg&CODE=10',			   // Ссылка на восстановление пароля
			   'linkprivmess'=>'',										  // Ссылка на личные сообщения
			   'linkprofile'=>'forum/index.php?showuser=');				 // ССылка на профиль
/* ==================================================== ##
## Настройки интеграции, правьте только их !!!		  ##
## ==================================================== */
var $db;																	   // Соединение
var $ua = array();															 // Массив
var $usermain = array('logged'=>0,											 // Массив
				   'userid'=>0,
				   'uname'=>'',
				   'umail'=>'',
				   'regdate'=>'',
				   'lastvisit'=>'',
				   'icq'=>'',
				   'msn'=>'',
				   'www'=>'',
				   'newmsg'=>0,
				   'newmsgnr'=>0,
				   'avatar'=>'');
//
function userapi(&$db,$logged = false){
 $this->db = &$db;
 if($logged){
  return $this->userarray();
 }
}

//
function clears($val){
$val = str_replace(array(" ",chr(0xCA),"<!--","-->",">","<","\"","!"),
				array(" ","","<!--","-->",">","<",""","!"),
				$val);
$val = preg_replace(array("/\n/","/\\\$/","/\r/"),
				 array("<br />","$",""),
				 $val);
 return $val;
}
//
function avatar($scr,$type,$link = false){
 $avatar = '';
 if($scr){

  if($type == 'local'){
 $avatar = ($link) ? '<img alt="" src="'.$this->data['avatarpath'].$scr.'">' : $this->data['avatarpath'].$scr;
  }
  if($type == 'url'){
$avatar = ($link) ? '<img alt="" src="'.$scr.'">' : $scr;
  }
  if($type == 'upload'){
$avatar = ($link) ? '<img alt="" src="'.$this->data['avatarupload'].$scr.'">' : $this->data['avatarupload'].$scr;
  }

 }
 return $avatar;
}
// userarray
function userarray(){
 global $setting;
  //
  $setting['editmail'] = 'no';
  //
  $ipb = array();
  $ipb['usagent'] = substr($_SERVER['HTTP_USER_AGENT'],0,255);
  $ipb['sessid'] = (isset($_COOKIE[$this->data['cookie'].'session_id'])) ? $_COOKIE[$this->data['cookie'].'session_id'] : '';
  $ipb['sessid'] = eregi("[^a-z0-9]",$ipb['sessid']) ? '' : substr($ipb['sessid'],0,32);
  $ipb['pashas'] = isset($_COOKIE[$this->data['cookie'].'pass_hash']) ? $_COOKIE[$this->data['cookie'].'pass_hash'] : '';
  $ipb['pashas'] = eregi("[^a-z0-9]",$ipb['pashas']) ? '' : $this->clears(substr($ipb['pashas'],0,32));
  //
  if(isset($ipb['sessid']) && isset($ipb['pashas'])){

  //
  if(empty($ipb['sessid'])){
   $ipbsess['member_id'] = 0;
  } else {
   $ipbsess = $this->db->fetchrow($this->db->query("SELECT * FROM ".$this->data['prefix']."sessions WHERE id='".$this->db->escape(addslashes($ipb['sessid']))."'
													AND running_time > ".(NEWTIME - $this->data['sessexp'])." AND browser='".$this->db->escape(addslashes($ipb['usagent']))."'"));
  }
  //
  if($ipb['pashas'] && $ipbsess['member_id'] > 0){

	$newuser = $this->db->fetchrow($this->db->query("SELECT id,name,email,joined,new_msg,msg_total,last_visit,member_login_key FROM ".$this->data['prefix']."members WHERE id ='".intval($ipbsess['member_id'])."'"));

	if($newuser['id'] && $newuser['name'] && $newuser['member_login_key']==$ipb['pashas']){

	   $ipbextra = $this->db->fetchrow($this->db->query("SELECT icq_number,website,msnname,avatar_location,avatar_type FROM ".$this->data['prefix']."member_extra WHERE id='".intval($newuser['id'])."'"));

	   $this->usermain = array('logged'=>1,
								'userid'=>intval($newuser['id']),
								'uname'=>$newuser['name'],
								'umail'=>$newuser['email'],
								'regdate'=>$newuser['joined'],
								'lastvisit'=>$newuser['last_visit'],
								'icq'=>$ipbextra['icq_number'],
								'msn'=>$ipbextra['msnname'],
								'www'=>$ipbextra['website'],
								// BLOCK INFO
								'newmsg'=>$newuser['new_msg'],
								'newmsgnr'=>$newuser['msg_total'],
								'avatar'=>$this->avatar($ipbextra['avatar_location'],$ipbextra['avatar_type'],1)
							   );

	}

  }
  //
  }

}
// userarray
// logout
function logout(){
 if($this->usermain['logged'] == 1 && intval($this->usermain['userid']) > 0){
$this->db->query("DELETE FROM ".$this->data['prefix']."sessions WHERE member_id = '".$this->usermain['userid']."'");
@setcookie($this->data['cookie'].'session_id',"",NEWTIME - $this->data['cookieexp'],"/","",0);
@setcookie($this->data['cookie'].'member_id',"",NEWTIME - $this->data['cookieexp'],"/","",0);
@setcookie($this->data['cookie'].'pass_hash',"",NEWTIME - $this->data['cookieexp'],"/","",0);
 }
}
// logout
// checkpwd
function checkpwd($passw){
 return (strlen($passw) > 32) ? 0 : 1;
}
// checkpwd
// checklogin
function checklogin($login){
 return (strlen($login) > 32 || strlen($login) < 3) ? 0 : 1;
}
// checklogin
// issetmail
function issetmail($mail){
 return $this->db->numrows($this->db->query("SELECT id FROM ".$this->data['prefix']."members WHERE email = '".$this->db->escape($mail)."' AND id <> ".$this->usermain['userid'].""));
}
// issetmail
// addmail
function addmail($mail){
 $this->db->query("UPDATE ".$this->data['prefix']."members SET email = '".$this->db->escape($mail)."' WHERE id = ".$this->usermain['userid']."");
}
// addmail
// addurl
function addurl($url){
 if($url){
  $url = (!preg_match('#^http[s]?:\/\/#i',$url)) ? "http://".$url : $url;
  $url = (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i',$url)) ? '' : $url;
 } else {
  $url = '';
 }
 return $url;
}
// addurl
// adddata
function adduse($icq,$www,$msn){
 $this->db->query("UPDATE ".$this->data['prefix']."member_extra SET icq_number='".$this->db->escape($icq)."',website='".$this->db->escape($www)."',msnname='".$this->db->escape($msn)."' WHERE id = '".$this->usermain['userid']."'");
}
// adddata
// associat
function associat($in = false){
$associat = array();
 if($in){
  $inq = $this->db->query("SELECT u.id,u.name,u.joined,e.avatar_location,e.avatar_type
						FROM ".$this->data['prefix']."members u LEFT JOIN ".$this->data['prefix']."member_extra
						AS e ON (u.id = e.id) WHERE u.id IN (".$this->db->escape($in).")");
  while($item = $this->db->fetchrow($inq)){
$associat[$item['id']]['userid'] = $item['id'];
$associat[$item['id']]['uname'] = $item['name'];
$associat[$item['id']]['regdate'] = $item['joined'];
$associat[$item['id']]['avatar'] = $this->avatar($item['avatar_location'],$item['avatar_type']);
  }
 }
 return $associat;
}
// associat
// login
function login($login,$pass){
 if($this->usermain['logged'] == 0 && intval($this->usermain['userid']) == 0){

  $login = $this->clears($login);

  if($newuser = $this->db->fetchrow($this->db->query("SELECT * FROM ".$this->data['prefix']."members WHERE name = '".$this->db->escape($login)."'"))){

 if($conve = $this->db->fetchrow($this->db->query("SELECT * FROM ".$this->data['prefix']."members_converge WHERE converge_id='".$newuser['id']."' AND converge_email='".$newuser['email']."'"))){

  $pass = md5($this->clears($pass));
  $checkpass = md5(md5($conve['converge_pass_salt']).$pass);

  if($conve['converge_pass_hash'] == $checkpass){

   //
   // $this->db->query("DELETE FROM ".$this->data['prefix']."sessions WHERE member_id = '".$newuser['id']."'");
   //
   $newsess['id'] = md5(uniqid(microtime()));
   $newsess['ip'] = substr($_SERVER['REMOTE_ADDR'],0,50);
   $newsess['ua'] = substr(addslashes($_SERVER['HTTP_USER_AGENT']),0,255);
   //
   $this->db->query("INSERT INTO ".$this->data['prefix']."sessions
					(id,member_name,
					 member_id,
					 ip_address,
					 browser,
					 running_time,
					 login_type,
					 member_group)
					 VALUES
					('".$newsess['id']."',
					 '".$newuser['name']."',
					 '".$newuser['id']."',
					 '".$newsess['ip']."',
					 '".$newsess['ua']."',
					 '".NEWTIME."',
					 0,
					 '".$newuser['mgroup']."')");

	 @setcookie($this->data['cookie'].'session_id',$newsess['id'],NEWTIME + $this->data['cookieexp'],"/","",0);
	 @setcookie($this->data['cookie'].'member_id',$newuser['id'],NEWTIME + $this->data['cookieexp'],"/","",0);
	 @setcookie($this->data['cookie'].'pass_hash',$newuser['member_login_key'],NEWTIME + $this->data['cookieexp'],"/","",0);

  }

 }

  }

 }

}
// login

// ADMIN FUNCTION
// LIST
function userlist($sf,$nu,$p,$sess){
global $lang;
 $inq = $this->db->query("SELECT * FROM ".$this->data['prefix']."members WHERE id > 0 ORDER BY id DESC LIMIT $sf,$nu");
  while($item = $this->db->fetchrow($inq)){
  $style = (intval($item['temp_ban']) > 0) ? 'noactive' : 'work_lite';
print "<tr>\n";
print "<td align=\"center\" class=\"$style\">\n";
print "<font class=site>".$item['name']."</font>";
print "</td>\n";
print "<td align=\"center\" class=\"$style\">\n";
print format_time($item['joined'],0);
print "</td>\n";
print "<td align=\"center\" class=\"$style\">\n";
print format_time($item['last_visit'],1);
print "</td>\n";
print "<td align=\"center\" class=\"$style\">\n";
print "<a href=mailto:".$item['email'].">".$item['email']."</a>\n";
print "</td>\n";
print "<td align=\"center\" class=\"$style\">\n";
if(intval($item['temp_ban']) == 0){
print "<a href=\"user.php?dn=edit&uid=".$item['id']."&p=$p&nu=$nu&ops=$sess[hash]\">
	   <img alt=\"".$lang['all_edit']."\" src=\"temp/".$sess['skin']."/images/edit.gif\" border=\"0\"></a>\n";
print "<a href=\"user.php?dn=del&uid=".$item['id']."&p=$p&nu=$nu&ops=$sess[hash]\">
	   <img alt=\"".$lang['all_delet']."\" src=\"temp/".$sess['skin']."/images/del.gif\" border=\"0\"></a>\n";
}
print "</td>\n";
print "</tr>\n";
  }
}
// LIST
// DEL
function userdel($uid){
 if($uid > 1){
  $this->db->query("DELETE FROM ".$this->data['prefix']."members WHERE id='$uid'");
 }
}
// DEL
// BANDEL
function bandel($uid){
}
// BANDEL
// BANADD
function banadd($uid){
}
// BANADD
// USEREDIT
function useredit($uid){
global $lang;
 if($uid > 0){
$item = $this->db->fetchrow($this->db->query("SELECT * FROM ".$this->data['prefix']."members WHERE id = '".$uid."'"));
print "<table border=\"0\"  border=\"0\" cellpadding=\"1\" cellspacing=\"1\" class=\"work\" align=\"center\">";
print "<tr><td class=\"work_title\" colspan=\"2\" align=\"center\">".$lang['edit_user']." ".$item['name']."</td></tr>\n";
print "<tr><td class=\"work_lite\" width=\"20%\" align=\"center\">";
print "<b>".$lang['login']." :</b></td>\n";
print "<td class=\"work_clip\" width=\"80%\" align=\"left\">";
print "".$item['name']."";
print "</td></tr>\n";
print "<tr><td class=\"work_lite\" width=\"20%\" align=\"center\"><b>E-Mail :</b>";
print "</td>\n";
print "<td class=\"work_clip\" width=\"80%\" align=\"left\">";
print "".$item['email']."";
print "</td></tr>\n";
 }
}
// USEREDIT
// USERSAVE
function usersave($uid,$edit){
}
// USERSAVE
// ADMIN
function messagelast($limit = 10, $target = '_blank'){
global $api,$lang;
 $inq = $this->db->query("SELECT id,password FROM ".$this->data['prefix']."forums");
 $qe = ''; $re = ''; $ignore = array();
 while($item = $this->db->fetchrow($inq)){ if($item['password']!=""){ $ignore[] = $item['id']; } }
 if(count($ignore) > 0){ $qe = " forum_id NOT IN (".implode(',',$ignore).") AND "; }

 $inq = $this->db->query("SELECT tid,title,posts,last_poster_id,last_post,last_poster_name,posts
					   FROM ".$this->data['prefix']."topics
					   WHERE (".$qe."state='open')
					   ORDER BY last_post DESC LIMIT 0,$limit");

 if($this->db->numrows($inq) > 0){
  $re = "<table class=\"forum\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">
	  <tbody class=\"forumbody\">
	  <tr>
		<td class=\"forumtitle\" width=\"50%\">Тема</td>
		<td class=\"forumtitle\" style=\"text-align: left;\" width=\"30%\">".$lang['author']."</td>
		<td class=\"forumtitle\" style=\"text-align: left;\" width=\"10%\">".$lang['all_data']."</td>
		<td class=\"forumtitle\" style=\"text-align: center;\" width=\"10%\">Ответов</td>
	  </tr>
	  </tbody>";
 while($item = $this->db->fetchrow($inq)){
  $title = (strlen($item['title']) > 55) ? substr($item['title'],0,55)."..." : $item['title'];
  $topid = $item['tid'];
  //$forid = $item['forum_id'];
  $lasid = $item['last_poster_id'];
  $poster = $item['last_poster_name'];
  $re.= "<tr>
	   <td class=\"forumtopic\">
		<a target=\"".$target."\" href=\"forum/index.php?showtopic=".$topid."&view=getnewpost\" title=\"".$title."\">".$title."</a>
	   </td>
	   <td class=\"forumtopic\" align=\"left\">
		<a target=\"".$target."\" href=\"forum/index.php?showuser=".$lasid."\">".$poster."</a>
	   </td>
	   <td class=\"forumtopic\" align=\"left\">
		<span class=\"time\">".$api->sitetime($item['last_post'])."</span>
	   </td>
	   <td class=\"forumtopic\" align=\"center\">
		<span class=\"time\">".$item['posts']."</span>
	   </td>
	 </tr>";
 }
 $re.="</table>";
}
return $re;
}
#
}
?>

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.