terça-feira, 11 de dezembro de 2012
Excluir um Cookie usando PHP
setcookie('VarNom', '' ,time()-3600,'/');
Algumas pessoas simplesmente definem como uma variavel vazia como
setcookie('VarNom', '');
Pois a variavel estará definida e o sistema poderia apresentar algum comportamento com o cookie definido, além de o simples envio do nome da variavel na requisição ja estará ocupando banda de dados.
segunda-feira, 6 de julho de 2009
Banco de Dados SQL de todas as Cidades do Brasil
Achei algumas um pouco desatualizadas, assim resolvi refazer.
Aproveitei e inclui as cidades Satélites de Brasília
Quem não quiser é só faz uma Busca por DF e deixa apenas Brasília
Baseada na Wikipédia do dia 16/05/2009
coletei todas as cidades e refinei os valores.
São 5562 + 28 cidades satélites de Brasília
TOTAL 5590 CIDADES.
para caixas ajax que carrega cidade é uma mão na roda.
Uma tabela limpa sem excesso de códigos inuteis sem CEP e coisas assim...
Bom proveito a todos
Na tabela há 3 colunas
NOME ->nome da cidade
UF -> Sigla do estado que pertence
capital -> 1 para as capitais, 0 para as demais.
Clique aqui para Baixar arquivo SQL de Cidades do Brasil
quarta-feira, 24 de setembro de 2008
Converter String em Numero no Action Script ( Flash )
todo mundo precisa, e ninguem acha, o nome ainda não é nada óbvio.
se você ja precisou obter um dado numérico de uma caixa de texto, se bateu com isso.
Ja procurei por strtoInt, stringvalue, valueint .... e muitas outras opções, mas o correto é:
e
parseFloat()
parseInt("3.1415");
Retorna: 3
parseFloat("3.1415");//parseFloat retorna as casas decimais.
Retorna: 3.1415
parseInt("olá");
Retorna: NaN (Not a Number = Não é numero)
parseInt("4coisa")
Retorna: 4 (interessante, ele pega qualquer coisa que fo
parseInt("0xFF")
Retorna : 255 (FF é este numero em exadecimal)
Para utilizar os outras representações como acima, ainda é possivel especificar no segundo parâmetro como abaixo
parseInt("FF", 16);
Retorna: 255
parseInt("1000", 2);
Retorna: 8 que é o 1000 em binário
terça-feira, 2 de setembro de 2008
Propagação de domínio, como acelerar o processo?
No mesmo dia notificado do problema ja solicitei o novo servidor, efetuei o pagamento no dia seguinte ja estava tudo pronto para migrar.
Agendei a migração para a madrugada para o site funcionar normalmente o tempo todo. acompanhei o processo acordado, e fui alterar a DNS no registroBR após a migração.
Pensei, até amanhã cedo esta tudo funcionando no novo servidor :-)
Dia seguinte, 50% do tráfego no novo e o restante no antigo.... (urgente, mensagem de Manutenção)
Dia seguinte, 70% do tráfego no novo e o restante no antigo....
Dia seguinte, 70% no novo servidor... respondendo email para justificar a mensagem de manutenção e erros ocorridos)
Dia seguinte, 60% no novo servidor, agora me irritei...
e o pior, sempre fazendo um ping meussites.com.br hora no servidor novo hora no antigo novamente.
solução, pesquisa, pesquisa... todos os lugares dizem menos de 72h.
porém percebo que a indicação de DNS não é dada apenas pelo órgão de registro, os próprios servidores informam este dado. Então vamos arriscar...
Fui ao WHM acessei entrada DNS do servidor antigo, em cada domínio existe uma indicação de IP e entradas DNS, informando que é realmente ali que mora o site. Pensei, é aqui que mora o problema.
Correndo o risco de ficar off-line mudei tudo.
coloquei em todos os campos possíveis o novo IP e nome do servidor (quanto aos email não havia problema porque estava tudo no Google Apps e nada seria perdido)
Resultado: 4 horas depois (pouco para quem esperou quase 5 dias) o tráfego no antigo endereço CESSOU... UFA!!!....
Serviço reestabelecido. tudo funcionando.
agora posso dormir!!!
Conclusão: Os bancos de dados de DNS não se alimentam apenas dos registros oficiais, mas também da resposta do Servidor, quando alguém acessa o meu site no servidor antigo ele acaba contradizendo o registro e divulgando para internet que o site ainda esta naquele servidor e não é necessário renovar o IP.
como eu tenho acesso às entradas DNS do WHM posso fazer isso, não é possível caso tenha acesso apenas ao CPanel. (no CPanel você pode apenas corrigir a entrada MX, ou seja, o IP para recebimento de email)
Contradizendo o óbvio, talvez uma solução melhor é quando alterar o site, simplesmente apagar tudo no servidor antigo. você ficará talvez um dia off-line, mas será apenas 1 ou 2 dias
sexta-feira, 8 de agosto de 2008
Lista com últimos posts do fórum phpBB
No início poucos acessavam o fórum então para interagir o meu site com o fórum coloquei uma caixa com com os últimos post do fórum....
O resultado foi instantâneo, a visitação do fórum multiplicou por 8.
Abaixo segue o modelo da caixa que inseri pouco antes do rodapé,
Mais embaixo o código PHP para acessar o fórum phpBB e capturar o último posts de cada tópico.
Como pode ser notado, a pesquisa é feita com um SELECT dentro do outro para que seja primeiramente ordenados os post por ordem cronológica e depois agrupado para obter apenas 1 (o último) post de cada Tópico.
Agora no fórum
Último Tópico postado
início do texto do último tópico do fórum....
penultimo Tópico postado
início do texto do último Post do penultimo tópico....
Outro topico
ultimo post de outro tópico.....
Outro topico
ultimo post de outro tópico.....
Outro topico
ultimo post de outro tópico.....
Outro topico
ultimo post de outro tópico.....
<?php
//Conectando ao banco de dados, não é necessário se já conectado
mysql_connect ("localhost", "USUARIO", "SENHA") or die('Não foi possível conectar ao banco de dados devido: ' . mysql_error());
//Selecionando o Banco de dados do phpBB
mysql_select_db ("site_phpbb");
$resultado = mysql_query("
SELECT topic_id, forum_id, post_time, post_subject, post_text, topic_id, forum_id, COUNT(*) AS total
FROM (
SELECT topic_id, forum_id, post_time, post_subject, post_text, topic_id, forum_id, 1 AS total
FROM posts
WHERE post_approved = 1
ORDER BY post_time DESC
) as zz
GROUP BY zz.topic_id, zz.forum_id
ORDER BY post_time DESC LIMIT 6
");
echo "<div class='forum'> <h2>Agora no fórum</h2>";
while($row = mysql_fetch_array($resultado)){
if(substr($row['post_subject'],0,3)=="Re:"){//Remove o termo Re: do título do post
$topico = substr($row['post_subject'],3);
}else{
$topico = $row['post_subject'];
}
echo "<a href='http://forum.meusite.com.br/viewtopic.php?f=".$row['forum_id']."&t=".$row['topic_id']."&start=".(floor($row['total']/10)*10)."' target='_blank'><h3>".$topico."</h3><p>".substr($row['post_text'],0,40).".....</p></a>";
}
echo "</div>";
?>
terça-feira, 29 de julho de 2008
Novo ícone do Google Analytics
é uma miniatura de um gráfico de estatísticas semelhantes ao do Próprio Analytics
A maioria dos sites do google utiliza o mesmo ícone
Neste ano o Google vem fazendo algumas alterações em seus ícones, a poucos meses os produtos google sempre levavam o ícone Big G (um G maiúsculo azul com fundo branco), e agora é o discreto
segunda-feira, 16 de junho de 2008
Redimencionar MovieCliep Externos
Descobri que NÃO FUNCIONA Fazer assim:
MeuMovie.loadMovie("http://boolen.blogspot.com/exemplo.swf");
MeuMovie._width = 100;
MeuMovie._height = 100;
Isso ocorre porque estranhamente objetos externos não sofrem as influencias do MovieClip onde este foi inserido.
Qual a Solução?
O Objeto "Baixado" só pode ser redimencionado no momento em que é feito o Download e incluído no swf pai.
Para fazer isso, não é possível utilizar o loadMovie mas sim o loadClip (que faz o mesmo e um pouco mais)
Siga os passos:
- Primeiro é necessario criar um objeto Listener para relacionar os eventos do arquivo que devem chamar alguma função.
var mclListener:Object = new Object(); - Em seguida criar o objeto que faz o Download dos arquivos
var Loader_mcl:MovieClipLoader = new MovieClipLoader(); - Relacionar o evento LOAD aos eventos importantes que deve executar alguma ação.
Loader_mcl.addListener(mclListener); - Criar a função que será iniciada quando o Download for iniciado aqui estou redimencionando o arquivo que esta sendo carregado para o swf.
mclListenerZ.onLoadInit = function(ob_mc:MovieClip) {
ob_mc._width = 100;
ob_mc._height = 100;
}; - Em seguida inserir em algum lugar a função que vai fazer com que o processo comece.
Aqui eu coloquei dentro de um Botão, mas claro que poderia estar externamente para ser executada ao iniciar o arquivo
// Ao clicar em Quad_mc vai baixar meuswf.swf e redimencionar para 100x100
Quad_mc.onPress = Baixar(p){
Loader_mcl.loadClip("meuswf.swf", ondevai);
}
Tudo Junto fica assim:
var mclListener:Object = new Object();
var Loader_mcl:MovieClipLoader = new MovieClipLoader();
Loader_mcl.addListener(mclListener);
mclListenerZ.onLoadInit = function(ob_mc:MovieClip) {
ob_mc._width = 100;
ob_mc._height = 100;
};
// Ao clicar em Quad_mc vai baixar meuswf.swf e redimencionar para 100x100
Quad_mc.onPress = Baixar(p){
Loader_mcl.loadClip("meuswf.swf", ondevai);
}
O Único problema é que não posso redimencionar o MovieClip posteriormente, é apenas na hora que estou baixando.
E assim a minha idéia de Zoom pregressivo foi pro espaço