03 jun

Enviar formulário de contato com anexo em PHP

Recentemente precisei montar um formulário de contato em PHP com a possibilidade de enviar um arquivo anexado, e percebi que o PHP não suporta isso nativamente pela função mail(). Como eu não quis usar nenhuma biblioteca de terceiros pronta, vi que seria necessário alterar o header do e-mail e acrescentar nele o anexo.

Para alcançar esse resultado, primeiramente precisei alterar o meu formulário. Este abaixo serve como exemplo, note o atributo enctype="multipart/form-data", sem ele não vai funcionar.

No script que vai receber os dados para envio, verifico a existência do anexo, já que ele é opcional, e codifico ele no header do e-mail. Aproveito e também dou uma limpada nos textos enviados, para evitar o chamado Email injection, já que não devemos confiar em textos enviados pelo usuário.

Pronto, com isso agora o formulário é capaz de enviar os anexos corretamente.

Fontes

02 jun

Servidor mostrando código PHP ao invés de processá-lo

Aqui no trabalho eu estava desenvolvendo a página para envio de formulário de contato através de e-mail e, ao copiar o site para a minha instalação do XAMPP, ao invés do site aparecer surgiu na verdade o meu código PHP na janela do Browser.

Pesquisei sobre o assunto e há uma resposta bem completa no Stack Overflow sobre esse assunto, e no meu caso era pelo código estar abrindo as tags php com <? ao invés de usar <?php e uma pesquisa rápida no meu código mostrou 785 ocorrências de todas as aberturas do PHP.

Por sorte, o Notepad++ conta com recursos bem interessantes na hora de localizar e substituir trechos em arquivos, e só precisei fazer uns testes usando o site regexpal para encontrar a expressão regular correta.

Inicialmente, busquei todas as tags que não tinham php, e a expressão regular usada foi <\?(?!php). Fiz um teste para ver se funcionava como esperado, e substitui por “<?php " como deveria ser. Sem as aspas, elas estão aí apenas para evidenciar o espaço extra adicionado ao final.

Lembre de marcar a opção “Expressão Regular”

Ao rodar o site, resolveu o problema.

 

01 jun

Ajustando o terminal para exibir caracteres UTF-8 corretamente (Ubuntu Server)

Durante e depois da minha recente atualização no meu servidor, percebi que diversas vezes apareciam caracteres que não faziam sentido, sempre quando haviam acentos ou nas aplicações para configuração, onde são desenhadas algumas caixas no terminal. Não foi difícil perceber que o sistema estava tentando mandar para a tela caracteres UTF-8 e ela não estava esperando por isso.

Confirmei através do comando locale que eu já estava com a configuração correta, pt_BR.UTF-8. Através de uma pesquisa, descobri os comandos necessários para configurar o terminal corretamente:

Minha escolha de opções aqui foi a seguinte:

  1. “Selecionar mapa de teclado da lista de arquiteturas”
  2. qwerty
  3. Brazilian
  4. BR-Latin 1

Altere isso conforme sua necessidade, em seguida entre o comando:

E selecione o encoding UTF-8, em seguida escolhi Latin 1, Fixed, 16. Pronto, agora o terminal está exibindo os caracteres corretamente e ainda posso usar acentos pelo teclado.

Fonte: http://askubuntu.com/a/303096

01 jun

Atualizando o servidor Ubuntu

Após um longo período sem usar (provavelmente mais de um ano), resolvi atualizar o meu pequeno servidor caseiro que estava funcionando como servidor para Minecrat e que originalmente seria o meu NAS de baixo custo.

Pesquisando encontrei rapidamente a forma como fazer isso, e é através do comando:

do-release-upgrade

Fonte: https://help.ubuntu.com/lts/serverguide/installing-upgrading.html