Pergunta

Atualmente estou usando um fórum PHPBB2 para uma seção de um dos meus sites, e eu gostaria de estender este site (adicionar novas páginas, scripts, etc). Gostaria de restringir o acesso a essas páginas para os usuários já registrados no Fórum PHPBB2.

Na verdade, se apenas membros de uma determinada MemberGroup poderia acessar essas páginas, que seria ótimo.

Existe uma maneira de usar as mesmas credenciais de login sobre o resto do meu site, e para verificar que agrupa os membros são de?

Graças

(a propósito, essas páginas estão em PHP)

Foi útil?

Solução

Se um usuário estiver conectado em PHPBB, há uma boa chance, embora nem sempre provável, que terá, então, um cookie que você pode ler e ajuda com a verificação de quem é quem no banco de dados.

Neste caso, você vai querer quebrar as migalhas do bolinho abaixo:

$_COOKIE["phpbb2mysql_data"]

Vamos usar um exemplo e apagá-la a encontrar os dados de que precisamos para consulta no banco de dados. Abaixo está o pedaço encontrado no cookie acima:

a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}

Para isso, você vai querer entrar e extrato que "3", que acontece para corresponder ao usuário conectado PHPBB.

unserialize que os dados para puxão que user_id out:

 $goo = unserialize($_COOKIE["phpbb2mysql_data"]);
 $extracted_id = $goo["userid"];

(graças a epochwolf em apontar o formulário serializado acima desse cookie)

Esse número vai ser bom para correr contra o banco de dados para verificar qual grupo o membro pertence. E você iria executar a verificação contra a mesa de phpbb_user_group (se você tivesse phpbb_ como o prefixo de suas tabelas do fórum.)

Se você não quiser manter o controle dos IDs do grupo do banco de dados, então você vai precisar fazer algum tipo de junção e teste contra o nome. Talvez algo como isto:

SELECT pug.user_id FROM phpbb_user_group pug 
 LEFT JOIN phpbb_groups g 
 ON pug.group_id=g.group_id
 WHERE pug.user_id='$extracted_id'
 AND g.group_name='Foo';

Se você pode puxar uma linha fora dessa, então você encontrou-se um usuário conectado que pertence a esse grupo Foo.

Outras dicas

tabela de usuário de Uso PHPBB2 e do código de login e permissões nas outras páginas. É sujo, mas funciona.

Ao usar o código de PHPBB2, quero dizer:

Dig em código de PHPBB2, descobrir como os usuários autentica PHPBB2 e copiar os pedaços relevantes de código. Se PHPBB2 é decentemente estruturado, você pode ser capaz de incluir apenas um par de arquivos de dentro PHPBB2 e usá-los sem um trabalho importante hack. Se não for bem estruturado, que vai estar sujo e feio.

Do not esqueceu de testar suas novas adições garantidos para o seu site! Certifique-se de que você obtenha os hacks direita.

Você pode usar tabelas de usuário e grupo do phpBB 2 diretamente. Pelo que me lembro, a coluna password é apenas um md5 () da senha real.

Este truque não funciona mais em phpBB3, como a senha é (finalmente) salgada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top