Grzegorz M.

Grzegorz M. www.avatec.pl

Temat: PunBB integracja z własnym systemem logowania

Witam,

Posiadam zainstalowane PunBB na serwerze wersja: 1.3 i mam problem z logowaniem za pomocą zewnętrznego formularza. Na oficjalnej stronie punbb niestety nikt mi nie pomógł :(

Mam następujące kody:

public function createForumUser($password)
{
include avatec_path."forum/include/functions.php";
include avatec_path."forum/include/utf8/utf8.php";
include avatec_path."forum/include/utf8/trim.php";

$password1 = forum_trim($password);
$salt = random_key(12);

$salt = mysql_escape_string($salt);
$newpassword = mysql_escape_string(forum_hash($password1,$salt));

if($this->sqlCheck("forum_users" , "login='".$_POST['login']."'")==true):
return 2;
elseif($this->sqlCheck("forum_users" , "email='".$_POST['email']."'")==true):
return 3;
else:
$this->sqlInsert("forum_users" , "null,1,'".$_POST['user_login']."',
'".$newpassword."','".$salt."','".$_POST['user_email']."',
null,null,null,null,null,null,null,null,
null,null,null,null,1,0,0,1,1,1,1,1,0,0,0,0,0,'English','Oxygen',0,
null,null,null,'".time()."','".$this->getIp()."',0,null,null,null");

return 1;
endif;
}

public function updatePasswordForum($user,$password)
{
include avatec_path."forum/include/functions.php";
include avatec_path."forum/include/utf8/utf8.php";
include avatec_path."forum/include/utf8/trim.php";

$password1 = forum_trim($password);
$salt = random_key(12);

$salt = mysql_escape_string($salt);
$newpassword = mysql_escape_string(forum_hash($password1,$salt));

$this->sqlUpdate("forum_users" , "password='".$newpassword."'" , "email='".$user."'");
}

/**
* Przeprowadzenie logowania na podstawie pól $login i $password
* @boolean: $this->userLogin($login, $password);
*/
function login($login, $password)
{
if(!isset($_SESSION['user'])):
if($this->sqlCheck(SQL_SITE_USERS , "login='".$login."' AND haslo='".md5($password)."'")==true):
if($this->sqlCheck(SQL_SITE_USERS , "login='".$login."' AND status=1")):
$_SESSION['user']['session_start'] = time();
$_SESSION['user'] = $this->sqlRow("*" , SQL_SITE_USERS , "WHERE login='".$login."' AND haslo='".md5($password)."'");

/**include avatec_path."forum/include/functions.php";
include avatec_path."forum/include/utf8/utf8.php";
include avatec_path."forum/include/utf8/trim.php";

$password1 = forum_trim($password);
$salt = random_key(12);

$user_id = $login;
$salt = mysql_escape_string($salt);
$form_password = $password;
$form_password_hash = mysql_escape_string(forum_hash($password1,$salt));
$expire = 3600;
setcookie("forum_cookie_".time(), base64_encode($user_id.'|'.$form_password_hash.'|'.$expire.'|'.sha1($salt.$form_password_hash.forum_hash($expire, $salt))), $expire);
**/

return 1;
else:
return 2;
endif;
else:
return 0;
endif;
else:
return 1;
endif;
}

Niestety, powyższe rozwiązania nie działają - być może ktoś naprowadzić mnie jak to zrobić, aby przy rejestracji tworzyć konto na forum, na które następnie aby dało się zalogować ?

Ps. Komentarze dodane przezemnie, aby to wyłaczyć