<div class="gmail_quote">2012/7/6 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div><div dir="ltr"><div class="im"><br></div><div class="im">3) Veja bem que você está assumindo, que toda página contem esse SECURITYTOKEN, independente do que você fez por último com o seu $url... infelizmente a maneira como seu código está, não é nem um pouco "side-effect free", logo acho que você não deveria contar com isso...<br>

<br>Se por algum problema, ele não encontrar nada (eg. nem toda página do forum tem esse SECURITYTOKEN ou então por algum motivo a última requisição falhou ou não retornou esse token), o que terá na variável $1 e consequentemente na sua variável $token?<br>

</div><b>R:</b> Toda pagina tem o "SECURITYTOKEN" já que para fazer qualquer ação preciso dele para gerar a permição, caso não haja login o SECURITYTOKEN é "guest".</div></div></blockquote><div><br></div>

<div>Agora que você respondeu com tanta certeza, posso te mostrar que você está errado =P</div><div>Nem sempre o content do $url no seu Shoutbox.pm terá um security token. Quer um exemplo?</div><div><br></div><div>Suponha que você chame get_msg, então o content dele será o que ele retornar de <a href="http://www.forum-invaders.com.br/vb/vbshout.php?type=activeusers&do=ajax&action=fetch&instanceid=2">http://www.forum-invaders.com.br/vb/vbshout.php?type=activeusers&do=ajax&action=fetch&instanceid=2</a>, aqui no caso ele retornou o seguinte:</div>

<div><br></div><div>{"ajax":"fetch","content":"There are currently no users chatting.","activeusers":"0"}</div><div><br></div><div>Se logo depois você chamar o send_msg, o conteúdo de $url será esse daí (já que não foi realizado nenhum outro post/get) e não terá "SECURITYTOKEN" nenhum ;)</div>

<div>Não só isso, esse conteúdo também não contém nenhum "Bem-vindo", o que faz com que seu regex não faça matching e você não submeta a mensagem ;)</div><div><br></div><div><br></div><div>Por isso que disse, seu código tem altas dependências de "side-effects"... o que acontece numa função, não depende só dela, mas sim da sequência de chamadas anteriores que antecederam ela. Isso além de ser uma coisa feia, atrapalha você a debuggar e a escrever testes para seu programa :)</div>

<div><br></div><div>[ ]'s</div></div>-- <br>Bruno C. Buss<br><a href="http://www.brunobuss.net" target="_blank">http://www.brunobuss.net</a><br>