Alterando o permalink sem perder visitantes vindos de buscadores

0

Posted by John-Henrique | Posted in Como fazer, Macetes, Php | Posted on 04-05-2008

Precisei alterar o permalink de meu blog e infelizmente os plugins Dean’s permalink migrations e Plugin permalink redirect não puderam me ajudar, isso devido ao fato de eles redirecionarem de
www.vibemidia.com/2007/05/03/alterando-permalink-sem-perder-visitantes-vindos-de-buscadores
Para
www.vibemidia.com/alterando-permalink-sem-perder-visitantes-vindos-de-buscadores e www.vibemidia.com/web/alterando-permalink-sem-perder-visitantes-vindos-de-buscadores
mas não conseguem redirecionar de www.vibemidia.com/alterando-permalink-sem-perder-visitantes-vindos-de-buscadores para www.vibemidia.com/web/alterando-permalink-sem-perder-visitantes-vindos-de-buscadores (pelo menos não funcionou comigo).
É possível criar o permalink como eu desejava mas, não era possível que alguém acessasse o endereço antigo e visualiza-se a pagina corretamente, sempre dava erro 404 (página não encontrada).
Resolvi o problema usando apenas 5 linhas de código em PHP, este pequeno código permite que o wordpress verifique se o artigo existe, caso não exista o wordpress leva para a página 404 e é nela que resolvi o problema, permitindo que você não perca os visitantes vindos de links antigos, divulgo aqui o script para resolver este problema.
Abra o arquivo 404.php do seu template e adicione na primeira linha o seguinte código.

<?php
$redirect = explode( “/”, $_SERVER['REQUEST_URI'] );
if( ( count( $redirect ) >= 2 ) && ( !isset( $_GET['name'] ) ) )
{
header( “location: ?name=”. str_replace( ‘.html’, ”, $redirect[ 1 ] ) );
}
?>
Estou utilizando este código em meu blog a 15 dias para alterar o permalink e não perder os visitantes, até o momento não houve problemas, todos os visitantes tem conseguido acessar normalmente e de acordo com os relatórios do Google Webmasters e Google Analytics está tudo certo.

Identificar navegador apenas com PHP

9

Posted by John-Henrique | Posted in Php | Posted on 20-07-2007

Identificar um navegador não é uma tarefa 100% segura, pois, em alguns casos pode-se configurar o navegador para que não seja identificada a versão entre outras informações, outro fator é o firewall que pode bloquear estas informações.

Dentre os diversos navegadores existentes temos outro fator que poderia impedir a identificação correta do navegador, este fator é conhecido como atualização de versão. Sim, sempre que um software é atualizado algumas informações podem ser trocadas, até mesmo configurações.

Enfim, identificar um navegador não é uma ação segura.

Ao contrario do que muita gente pensa é possível identificar o navegador do usuário utilizando apenas PHP, veja como isso pode ser realizado.

Muitos [bp]programadores[/bp] conhecem a variável de servidor $_SERVER que é um array contendo informações sobre o servidor e a conexão com o mesmo, porém poucos a usam ao ponto de facilitar o desenvolvimento de seus sistemas e sites.

Dentre as informações contidas em $_SERVER temos HTTP_USER_AGENT que informa o conteúdo do header User-Agent. O retorno desta função pode ser algo como o exemplo abaixo:

Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

A partir desta informação já é possível saber qual é o navegador do usuário e escolher qual o estilo ou pagina ele deve ser redirecionado, mas, caso você queira melhorar a verificação para saber se o navegador é compatível com seu site, você pode utilizar a função get_browser() que tenta retornar as funções [bp]disponíveis pelo navegador[/bp].

Você pode utilizá-la da seguinte forma

// Informa ao get_browser() qual o header User-Agent a ser analisado
$browser = get_browser($_SERVER['HTTP_USER_AGENT']);

// Faz um loop para percorrer os índices do array
foreach ($browser as $name => $value) {

// Imprime os valores
echo “$name $value
\n”;
}
?>

O exemplo anterior retornará algo similar a isto:

browser_name_regex ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*; rv:1\.8.*) gecko/.*$
browser_name_pattern Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/*
parent Mozilla 1.8
platform WinXP
browser Mozilla
version 1.8
majorver 1
minorver 8
css 2
frames 1
iframes 1
tables 1
cookies 1
backgroundsounds
vbscript
javascript 1
javaapplets 1
activexcontrols
cdf
aol
beta 1
win16
crawler
stripper
wap
netclr

Maiores informações sobre estas funções
Variáveis pré definidas
get_browser()

Melhore suas técnicas de programação – Parte 1

3

Posted by John-Henrique | Posted in Desenvolvimento, MySQL, Php, Tecnologia | Posted on 14-05-2007

Existem diversas formas de se escrever o mesmo código e ter o mesmo resultado, algumas destas formas economizam grande parte do seu tempo, vou mostrar aqui alguns exemplos básicos, até você vai se surpreender dizendo “Nossa! porque eu não fazia assim?”.

Em determinada parte do sistema você precisa realizar uma consulta no banco de dados MySQL por exemplo, normalmente você faria assim…

// REALIZANDO A CONSULTA NO BANCO
$sql = mysql_query(“SELECT * FROM tblUsuarios WHERE login = ‘john’”);

// INFORMANDO A QUANTIDADE DE REGISTROS ENCONTRADOS
$numeroRetornado = mysql_num_rows($sql);

// VERIFICANDO SE RETORNOU ALGUM REGISTRO
if($numeroRetornado != 0){

// FOI RETORNADO ALGUM REGISTRO
echo “Login existente!”;

}else{

// NÃO FOI RETORNADO REGISTRO
echo “Login inexistente!”;

}

Bom, neste pequeno trecho fizemos uma consulta e verificamos se o login “john” já existe no banco, mas, poderíamos ter feito de uma forma mais abreviada e “limpa”, veja…

// VERIFICANDO SE O LOGIN JÁ EXISTE NO BANCO
if(mysql_num_rows(mysql_query(“SELECT login FROM tblUsuarios WHERE login = ‘john’”)) != 0){

// FOI RETORNADO ALGUM REGISTRO
echo “Login existente!”;

}else{

// NÃO FOI RETORNADO REGISTRO
echo “Login inexistente!”;

}

Note que economizamos três linhas, mesmo sendo poucas deixamos a aparência do código mais “limpa”, ou seja, deixamos apenas o necessário.

Note também que abreviamos o retorno da consulta ao indentar mysql_num_rows() ao mysql_query() isso funciona perfeitamente já que o argumento de mysql_num_rows() é um link identificador de consulta que é exatamente o que o mysql_query() retorna, sendo assim, um ajuda o outro.

Ainda no mesmo código abreviamos o resultado da consulta informando quais os campos que desejamos usar, observe que eu informei apenas o campo login, isso faz com que o retorno da consulta seja menor e com isso o tempo de processamento do script também diminui deixando o sistema mais rápido.

Com estas pequenas dicas poderíamos melhorar o desempenho de um sistema qualquer deixando-o mais rápido, economizando processamento do hardware o que pode ser muito útil para sites que possuem alto trafego de dados.