2012/7/7 Aureliano Guedes <[email protected]> > Entendi, mas o que acontece é o seguinte, as paginas do vbshout.php > apesar de não terem o SECURITYTOKEN elas precisam dele, então acredito que > há alguma verificação nos cookies, tanto que que se não estiver logado o > que verei nessa pagina > http://www.forum-invaders.com.br/vb/vbshout.php?type=activeusers&do=ajax&action=fetch&instanceid=2será > isso: > > {"ajax":"fetch","content":"There are currently no users > chatting.","activeusers":"0"} > > e não isso: > > {um monte de coisa} > > Exato Aureliano, leia o que eu escrevi com calma... O que eu disse fui justamente que esse {um monte de coisa} não contem nem o SECURITYTOKEN, nem nenhum "Bem-vindo"... logo sua função send_msg está *ERRADA*, pois ela espera que o $url esteja em um estado, porém em alguns (vários?) casos ela não estará.
Além disso, esse "if($content =~ /Bem-vindo/gi)" não garante que você está logado ou não... eu como guest consigo ver a página inicial do fórum com isso. Minha sugestão para o Shoutbox.pm: 1) Crie um método de login, e tire do "código global" do pacote Shoutbox.pm. 2) Crie um método para verificar se está logado, creio que fazendo do método atual, verificando o SECURITYTOKEN, deve funcionar de boa. 3) Crie um construtor decente para sua classe usando uma sub BUILD [1] (pessoal mais experiente com Moose, se eu estiver falando besteira me corrija por favor). Nela você já pode tentar fazer um login inicial usando a função criada em (1) e já guardar o seu SECURITYTOKEN. 4) Modifique a sua send_msg para fazer exatamente o seguinte: - Verifique se está logado (2). Se não, logue (1). (Talvez você queira fazer umas 3 tentativas antes de desistir, retornando algum erro.) - Envie a mensagem. 5) Faça a mesma coisa do passo anterior para sua função get_msg. 6) Adicione alguns testes na sua classe :D [ ]'s [1] https://metacpan.org/module/Moose::Manual::Construction#BUILD -- Bruno C. Buss http://www.brunobuss.net
_______________________________________________ Rio-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/rio-pm
