Como preciso usar isso por motivos de trabalho, fiz algumas pesquisas.
A ideia principal é simular COOKIES. Primeiro insira o ID do usuário e um ID de sessão em Cookies e, em seguida, insira o ID de sessão e o ID do usuário na tabela de sessões no banco de dados. Se abrir o fórum e o sistema verificará se as informações dos COOKIES são iguais às informações do banco de dados. Se forem iguais, o login automático pode ser obtido. O código principal da parte de login é o seguinte:
<?php.
//Obtém um SESSIONID aleatório de 32 bits
//Inicializa cada valor
$Session_testId=create_sess_id(32);
$SessionIp='192.168.0.100';
$cookie_path='/';
$cookieName='phpbb3_1w36a';
$userBrowserInfo= $_SERVER["HTTP_USER_AGENT"];
$userIpAdd=$_SERVER["REMOTE_ADDR"];
//Obtém o nome de usuário e senha do formulário
$cmd_username=$_POST["nomedeusuário"];
$cmd_password=$_POST["senha"];
//Verifique primeiro com a tabela do sistema CMS, se for aprovado. Consulte o ID na tabela de usuário BBS do nome de usuário correspondente
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$selectUid="selecione user_id de bbs_users onde nomedeusuario='$cmd_username'";
$uidResult=mysql_query($selectUid);
$userId=nulo;
while($row1 = mysql_fetch_array($uidResult, MYSQL_NUM))
{
$userId=$row1[0];
}
//echo $userId;
mysql_close($link);
//Inserir informações de ID do usuário em Cookies
setcookie($cookieName.'_u',$userId,time()+100000000,$cookie_path,$SessionIp,false);
//Inserir informações de SessionID nos cookies
setcookie($cookieName.'_sid',$Session_testId,time()+100000000,$cookie_path,$SessionIp,false);
//Inserir informações da sessão na tabela phpb_sessions;
$link=mysql_connect("localhost","root","");
mysql_select_db("cms");
$sqlcommand="inserir em bbs_sessions(session_id,session_user_id,session_last_visit,session_start,session_time,session_ip,session_browser,session_page)";
$sqlcommand.=" valores('$Session_testId',$userId,'".time()."','".time()."','".time()."','$userIpAdd', '$userBrowserInfo','index.php')";
//echo $sqlcommand;
mysql_query($sqlcommand);
mysql_close($link);
//Gera um número aleatório de 32 bits
função create_sess_id($len=32)
{
// Obtém os microssegundos da hora atual
lista($u, $s) = eXPlode(' ', microtime());
$tempo = (float)$u + (float)$s;
//Gera um número aleatório
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
//Gera ID da Sessão
$sess_id = md5( md5($tempo). md5($rand_num) );
//Intercepta o SessionID que especifica o comprimento necessário
$sess_id = substr($sess_id, 0, $len);
retornar $sess_id;
}
header("localização: http://192.168.0.100/bbs/index.php ");
//print_r($_COOKIE);
?>
Desta forma, o login automático pode ser alcançado.
Claro, isso não é suficiente. Os usuários no PHPBB também devem ser impedidos de modificar as informações da conta e registrar novos usuários.
o diretório phpbb3rc2stylesprosilvertemplate Na página do modelo .ucp_register.html a seguir, exclua o conteúdo interno e adicione este
<script type="text/javascript" language="javascript">
window.location='membro.php';
</script>
se
cadastrar após ler os termos, ele irá para a página de cadastro no site. O método de modificação das informações é basicamente o mesmo.
unifique a tabela de usuários. Em vez disso, cada um tem seu próprio sistema de usuário.
Ao registrar um usuário no site, insira as informações do usuário na tabela de usuários e na tabela user_group do banco de dados PHPBB.
permissões e insira os itens correspondentes, caso contrário você não conseguirá fazer login. Problemas como não alterar a mensagem e não conseguir ler o fórum Esta parte é relativamente longa e simples, então o código é omitido. principalmente a parte de login.