Página em branco no IE8
Seu site simplesmente não renderiza mais no IE8?
Uma solução (trick) bem rápida é adicionar a seguinte meta tag:
Com isso, o navegador irá renderizar a página com “olhos” de um IE7. A idéia é que no futuro seja possível definir que o IE renderize como sendo um FF… Chega logo esse dia, chega logo!
Filed under: Desenvolvimento | Leave a Comment
Tags: doctype, html, ie8
PHPSC Conference 2009 – Eu fui !
Parabéns ao pessoal do PHP-SC, foi um excelente evento, 2 dias de muito PHP e interação entre o pessoal. Agradeço por ter sido convidado a palestrar sobre PHP: Aplicações Profissionais. Vou publicar o quanto antes os slides da apresentação.
Walker Alencar, Flávia Jobs e Blanco são alguns dos nomes que me chamaram a atenção, incluindo o Jaydson e seu primo com o projeto Thewebmind.org bastante interessante, vale a visita ao site.
A organização do evento está de parabéns, William, Rômulo e demais envolvidos, parabéns pessoal!
Filed under: PHP | Leave a Comment
Tags: PHP, php-conference, phpconference, phpsc, phpsc-conference
Por padrão, para acessar alguma URL de projeto feito com o framework CodeIgniter, é necessário que escreva-se algo como:
url/index.php/controller/function
Para omitir o index.php da url é bem simples, basta adicionar o seguinte trecho de código no .htaccess localizado na mesma pasta que o index.php:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Até a próxima pessoal.
Filed under: Desenvolvimento, PHP | Leave a Comment
Tags: CodeIgniter, PHP
favicon para iPhone
Muitos sabem que para adicionar um favicon ao site basta colocar a seguinte tag dentro do <head>
Porém, e se quisermos criar um favicon para o iPhone em especial? Simples, basta adicionar a seguinte tag:
Preferencialmente, o arquivo do favicon para ser visualizado no iPhone, deve ser em formato PNG.
A dica é do Xorna.
Filed under: Desenvolvimento | Leave a Comment
Tags: favicon, iPhone
Quando falamos de otimização de sites, existem diversas técnicas interessantes que podemos implementar a fim de obter um load time menor e uma redução na quantidade de dados enviados ao end-user.
São diversas técnicas disponíveis, como:
- Reduzir o número de HTTP Requests
- GZip para compactação de conteúdo e scripts externos
- Manter arquivos CSS e JS externos a página
- Adicionar os CSS antes dos Javascripts (se possível, prefira colocar os JS no rodapé da página)
- Utilizar um bom controle de Cache
…enfim, existem mais delas aqui no Yahoo! Developers
Quando começamos a falar de CSS e JavaScript, pensamos na prática de combine scripts (ou minify. Não confunda com compact – compactação, a exemplo do que o Packer faz com JavaScript, que em alguns casos traz problemas para os desenvolvedores).
Quando falamos de imagens podemos pensar em cache expire, sprites, compactação de imagem, e… Data URI.
Cada imagem inserida na página é um Http request que o navegador executa até o servidor de hospedagem da imagem, uma forma de evitar estas requisições, é enviar a imagem em formato “texto” dentro do código da página.
Código de inserção de imagem na página:
<img src=”http://www.site.com/imagem.gif” />
Código utilizando Data:uri
<img src=”data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAA…..CC” />
Da segunda forma, não estamos mais entregando ao navegador um link de uma imagem para ele efetuar um HTTP Request e baixá-la, mas sim, estamos entregando o conteúdo da imagem.
OK, mas e qual o custo disso? Se você possuir um site que opera no limite dos recursos de hardware do seu servidor, esta não é uma prática recomendada, já que o servidor terá um trabalho a mais, que será o de efetuar o encoding de todas a simagens da página visitada pelo usuário.
Como fazer?
Essa técnica é cross-browser?
Infelizmente não. O IE8 apresenta suporte, mas as versões anteriores não. Logo, se você não usa nenhum mecanismo de identificar o navegador do usuário antes de apresentar-lhe a interface, não recomendo seu uso por enquanto.
Porém, se você verifica o navegador do usuário e possui a flexibilidade de entregar conteúdos diferentes de acordo com esta variável além de possuir recursos subutilizados no seu servidor, é uma boa maneira de garantir um carregamento mais rápido das suas páginas.
Filed under: PHP, Performance | Leave a Comment
Tags: data uri, Performance, PHP
Zend_Session lost session
Ao trabalhar com o componente Zend_Session do Zend Framework, experimentei o seguinte problema:
Ao clicar rápido entre 2 ou 3 links de uma página, a sessão era perdida (finalizada), simulando um efeito de Logout. Ao buscar por soluções descobri uma dica interessante:
“If a user has successfully logged into your website, use rememberMe() instead of regenerateId()” extraída da documentação: http://framework.zend.com/manual/en/zend.session.global_session_management.html
Porém, não foi exatamente o uso do rememberMe() que me ajudou, até porque eu já estava usando-o. O quê me fez solucionar o problema foi a primeira parte da frase “If a user has successfully logged into your website…”, pois bem, eu estava colocando o rememberMe() no bootstrap logo após o início da sessão, quando na verdade, ele deveria ficar no controller de autenticação de usuário, assim que o login fosse efetuado com sucesso.
Feito isso, essa “perda” de sessão parou de acontecer. Este problema foi experimentado com as versões 1.6 / 1.7 / 1.8 do ZF. Esta solução foi testada somente com a versão 1.8.
Filed under: Zend Framework | Leave a Comment
POST request com PHP
Muita gente já teve esta necessidade (inclusive eu), de enviar via Post um conteúdo gerado pela aplicação de forma automatizada, seja por comunicação REST, SOAP ou afins.
Abaixo está um pequeno exemplo que achei na Net há um tempo atrás, que faz o seguinte:
Simula campos de formulários preenchidos e enviados para um URL especificada, e o melhor de tudo, NÃO usa CURL.
Exemplo extraído na íntegra de: http://www.vayanis.com/2007/08/28/sending-post-requests-with-php/
$postdata = http_build_query(
array(
‘var1′ => ’some content’,
‘var2′ => ‘doh’
)
);
$opts = array(’http’ =>
array(
‘method’ => ‘POST’,
‘header’ => ‘Content-type: application/x-www-form-urlencoded’,
‘content’ => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents(’http://example.com/submit.php’, false, $context);
Filed under: PHP | Leave a Comment
Assim que comecei a trabalhar com Zend_Form experimentei um erro com htmlspecialchars(), que me tomou algumas longas horas para identificar e gostaria de compartilhar a solução (simples, rápida e fácil).
A mensagem de erro era a seguinte:
Warning: htmlspecialchars() [function.htmlspecialchars]: charset `utf8′ not supported, assuming iso-8859-1 in C:\app\lib\Zend\View\Abstract.php on line 837
Isso aconteceu com a versão 1.7.7 e 1.8.0 do ZF.
Ok, o passo-a-passo da resolução do problema foi:
1 – PHP.net, função htmlspecialchars(), pode assumir como valor do seu terceiro parâmetro, a string ‘UTF-8′
2 – Fui até C:\app\lib\Zend\View\Abstract.php on line 837
return call_user_func($this->_escape, $var, ENT_COMPAT, $this->_encoding);
Onde $this->_encoding é setado na linha 851, e de fato estava setando ‘utf8′ ao invés de ‘UTF-8′
3 – Fui até o arquivo de configurações da minha aplicação e reparei que a mesma config de charset que estava utilizando na conexão com o banco ‘utf8′ (exigido desta forma pelo PDO), estava também sendo usado para o htmlspecialchars()
4 – Criei outra constante no config da aplicação voltada para atender ao charset da aplicação como um todo, e pronto. Funcionou.
Filed under: PHP, Zend Framework | Leave a Comment
Muia gente se confunde na hora de escrever aquele IF numa linha só, e como essa semana me perguntaram 2x sobre como escrevê-lo, resolvi colocar aqui:
Ou se quiser dar um Echo direto do resultado desta condicional, basta colocar:
Filed under: PHP | Leave a Comment
Tags: if statement, PHP
CSS input checkbox
Como adicionar estilo em checkbox diferente do input type text?
input[type="checkbox"] {
height: 20px;
}
Este é um exemplo simples e prático.
Filed under: CSS | Leave a Comment
Tags: checkbox, CSS
Entradas recentes
- Página em branco no IE8
- PHPSC Conference 2009 – Eu fui !
- Removendo o index.php na url do CodeIgniter
- favicon para iPhone
- Data:uri scheme – inserindo imagens sem http request extra
- Zend_Session lost session
- POST request com PHP
- Erro com Zend_Form e htmlspecialchars()
- PHP – One Line If Statement – Short If Statement – Condensed If Statement
- CSS input checkbox
- Esconder a versão do Apache e a versão do PHP
Categorias
- Apache (1)
- CSS (2)
- Desenvolvimento (5)
- Feeds e formatos (1)
- Javascript (2)
- jQuery (2)
- Mobile (1)
- Outros (2)
- Performance (2)
- PHP (10)
- Zend Framework (2)