Archive for the 'PHP' Category

Mês por extenso no PHP

Uma função que utilizo em PHP e que algumas pessoas me perguntaram esses dias é de como escrever o mês por extenso, mas o detalhe é que deve ser em português.

A função seguinte é muito simples, pego o número do mês e retorno o mês escrito, veja abaixo:

function mes_extenso($referencia = NULL){
switch ($referencia){
case 1: $mes = " de Janeiro de "; break;
case 2: $mes = " de Fevereiro de "; break;
case 3: $mes = " de Março de "; break;
case 4: $mes = " de Abril de "; break;
case 5: $mes = " de Maio de "; break;
case 6: $mes = " de Junho de "; break;
case 7: $mes = " de Julho de "; break;
case 8: $mes = " de Agosto de "; break;
case 9: $mes = " de Setembro de "; break;
case 10: $mes = " de Outubro de "; break;
case 11: $mes = " de Novembro de "; break;
case 12: $mes = " de Dezembro de "; break;
default: $mes = " de _______________ de ";
}
return $mes;
}

A utilização desse código é muito simples:

Quando você tem uma data no banco de dados no padrão americano, pode usar da seguinte forma:
$data1 = "2010-06-23";
$data1 = explode("-", $data1);
echo $data1[2].mes_extenso($data1[1]).$data1[0]."<br>";

Quando for um mês inexistente ele vai mostrar um espaço para preenchimento:
$data2 = "2010-xx-01";
$data2 = explode("-", $data2);
echo $data2[2].mes_extenso($data2[1]).$data2[0]."<br>";

Quando for uma data já com padrão brasileiro:
$data3 = "05/05/2010";
$data3 = explode("/", $data3);
echo $data3[0].mes_extenso($data3[1]).$data3[2]."<br>";

O código fonte está aqui.

É claro que você pode modificar o código para o uso específico que vai fazer em seu projeto.

Veja aqui um exemplo do funcionamento.

Um abraço,
Marcio Nakano

Upload de arquivo com ColdFusion e PHP, guardando no MySQL

Pessoal, como algumas pessoas estavam perguntando como fazia um upload de arquivo e guardando o nome desse arquivo e outros dados num banco de dados, resolvi fazer um script PHP e outro em ColdFusion para demonstrar como se faz.
Não quero entrar em méritos de uma ou outra linguagem, porém com o CF o upload é mais simples, como veremos a seguir.
No CF usaremos a tag “cffile” (para saber mais sobre essa tag clique aqui) com o a ação marcada para action=”upload”.
Uma opção interessante dessa tag é o “nameconflict”, com ele podemos sobrescrever, devolver mensagem de erro, pular o upload ou mudar o nome do arquivo, caso haja algum arquivo com o mesmo nome.
Iremos deixar “makeunique”, ou seja, se o CF encontrar algum arquivo com o mesmo nome, ele irá acrescentar algo no fim do nome, geralmente o número 1.
No resto do código, usaremos SQL simples para guardar os dados fornecidos por meio do formulário POST e em seguida faremos uma query pegando os dados guardados e mostrando para verificação se o upload foi bem sucedido.
Segue o código CF:
<cfset imgDone = ''>
<cffile action="upload" destination="#ExpandPath('img/')#" filefield="img" nameconflict="makeunique">
<cfset imgDone = #File.ServerFile#>
<cfquery datasource="#dsn#">
	INSERT INTO upload (text, img) VALUES (
		<cfif IsDefined("FORM.text") AND #FORM.text# NEQ ""><cfqueryparam value="#FORM.text#" cfsqltype="cf_sql_clob"><cfelse>''</cfif>,
		'#imgDone#'
	)
</cfquery>
No PHP existem 2 funções que possibilitam fazer o upload de arquivos: copy() e move_uploaded_file(). Usaremos este último por ser o mais indicado para upload de arquivos feitos pelos usuários.
A função move_uploaded_file() (para saber mais sobre essa função clique aqui),verifica se é um arquivo válido (se ele foi carregado pelo PHP), se o arquivo é válido, ele será movido para o destino informado.
Segue o código PHP:
//Definindo a pasta para onde irá os arquivos do upload
$uploaddir = 'img/';

//Mostrando alguns parametros da imagem
echo "<pre>";
if (move_uploaded_file($_FILES['img']['tmp_name'], $uploaddir.$_FILES['img']['name'])) {
	echo "O arquivo é valido e foi carregado com sucesso. Aqui esta alguma informação:n";
	print_r($_FILES);
	$insertSQL = sprintf("INSERT INTO upload (text, img) VALUES (%s, %s)",
											 GetSQLValueString($_POST['text'], "text"),
											 GetSQLValueString($_FILES['img']['name'], "text"));
	echo "<br />Segue o comando SQL:<br />";
	echo $insertSQL."<br />";
	mysql_select_db($database_conexao, $conexao);
	$Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());
} else {
	echo "Erro ao fazer o upload! Aqui esta alguma informação:n";
	print_r($_FILES);
	print_r($_POST);
}
echo "</pre>";
Lembrando que este é um script simples e que você pode fazer ainda muito mais com as imagens. A partir do CF8 existe uma tag que você pode manipular as imagens, redimensionando, fazendo crop etc que é a tag cfimage.
No PHP as funções mais usadas para manipular imagens são getimagesize, imagecreatefromjpeg, imagejpeg, imagedestroy etc. Essas funções são da biblioteca GD, ou seja, seu servidor deve ter essa biblioteca instalada para funcionar, veja a lista completa das funções aqui.
Para fazer o download dos arquivos clique aqui.
Descompacte os arquivos e crie uma base com o nome “teste”, em seguida rode o SQL do arquivo db.sql dentro da base criada.
Caso tenham dificuldade, tentem até conseguir, pois acredito que aprendemos somente quando passamos por dificuldades. Leve estes scripts como exemplo e tente fazer um upload da sua maneira.
Um abraço, Marcio Nakano.

Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP

Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP.

Escrito por Marcio Nakano (marcionakano.com.br)
Data: 29/09/2008
Disponível em http://www.marcionakano.com.br/blog/post/instalando-apache-mysql-coldfusion-php.pdf

Os programas necessários são: XAMPP e CF.
Estou utilizando nesse tutorial as versões:

  • XAMPP 1.6.7 (xampp-win32-1.6.7-installer.exe), veja aqui.
  • CF 8 (coldfusion-801-win.exe), veja aqui.

Conteúdo

Instalando XAMPP
Instalação do ColdFusion.


Instalando XAMPP

O XAMPP é um programa de instalação fácil de servidores web, de banco de dados e FTP. Isso foi feito para facilitar a instalação, evitando que aconteçam conflitos.
Iniciando a instalação

Vamos iniciar a instalação clicando no executável e em Next.

Primeiros passos
Escolha o caminho (pode ficar dentro do "arquivos de programas" se você preferir).
Definindo o caminho da instalação.

Eu não gosto de ícones na área de trabalho, fica ao seu critério deixar criar ou não!
Coloque o Apache e o MySQL como serviços, pois assim você pode configurar para que eles sejam iniciados somente quando for necessário, ou seja, quando você for usar o computador para lazer, estes serviços não irão consumir memória nem processamento.

Definindo os serviços do Apache e MySQL.

Serão instalados todos os componentes necessários para o funcionamento! Depois de instalado, ele vai iniciar os serviços, caso você esteja com o firewall ativado, é só você desbloquear o httpd.exe (serviço do Apache).

Finalizando a instalação.

Sim, para conhecermos o painel do XAMPP.
Podemos notar que o Apache e o MySQL estão rodando. Vamos verificar se a instalação foi bem sucedida, clique no botão "Admin…" do Apache.

Painel de Controle do XAMPP

Repare na URL, que se inicia com http://localhost, isso quer dizer que as páginas estão rodando no servidor Apache.

Configurando a linguagem do painel.

Escolhendo PT-BR, iremos para a página principal do XAMPP. Você pode vasculhar todo o conteúdo, mas vou concentrar no phpMyAdmin.

Clique no link "phpMyAdmin" no menu "Ferramentas".

Menu Ferramentas com o phpMyAdmin

Se iniciou a tela do phpMyAdmin, significa que o MySQL foi instalado corretamente.

Painel do phpMyAdmin.

O ideal é deixar o MySQL com senha, isso por questões de segurança e padrão. Você pode seguir o manual do XAMPP na parte de “Uma questão de segurança”, vou explicar somente a parte de alteração do usuário do MySQL diretamente no phpMyAdmin. Para mudar a senha de root, clique em "Privilégios".

Clique no ícone de edição dos privilégios do usuário root. Digite uma senha de sua preferência e clique em executar. Faça a mesma operação para o outro usuário root.

Registrando uma senha para o root no MySQL.

Quando você clicar no link "Servidor:localhost", vai dar uma mensagem de erro. Vamos alterar o arquivo de configuração para que volte a acessar normalmente.

Erro ao tentar acessar o phpMyAdmin.

Abra o arquivo "config.inc.php" que está localizado em c:xamppphpMyAdmin (depende do caminho onde foi instalado o XAMPP, poderia ser por exemplo em C:Arquivos de programasxamppphpMyAdmin).

Editando as configurações no arquivo PHP.

Escreva dentro das aspas a sua senha. Volte ao phpMyAdmin e de um refresh na página (se der erro, limpe o cache da sua máquina).
Para garantir as mudanças (essa etapa não é obrigatória) clique em "RELOAD PRIVILEGES".

Verificando o acesso com senha no phpMyAdmin.

Pronto, seu Apache está instalado e rodando PHP e o MySQL.

Para mais detalhes sobre a instalação do XAMPP, veja aqui.

Se você queria somente o PHP com MySQL, pode parar por aqui, mas indico instalar o ColdFusion, nem que seja para você fazer alguns testes e aprender mais uma linguagem.

Sempre que escrever os tutorias no Blog da Zetai (http://www.zetai.com.br/blog), vou tentar escrever sempre nas duas linguagens.

Se você quer saber mais sobre o ColdFusion (podemos chamar simplesmente de CF), existe muito material na Internet, inclusive em português, além do LiveDocs CF8.

Mas como opinião própria, posso garantir que as funcionalidades e facilidades que o CF possui irão agradar, sem esquecer a comunidade que é bem ativa e compartilham o conhecimento (assim como estou tentando fazer agora, rs).

Instalação do ColdFusion.

Antes de instalar o CF, procuro deixar uma cópia do arquivo de configuração do Apache sem o CF. Faço isso, pois quando vou trabalhar em um projeto PHP, utilizo esse arquivo e não inicio o serviço do ColdFusion.
O arquivo é "httpd.conf" e está localizado em C:xamppapacheconf a instalação do CF irá alterar esse arquivo, por isso crie uma cópia e coloque um nome sugestivo, como por exemplo "httpd_PHP.conf"
Clique no executável e em OK.

Clique em Next. Leia os termos e aceite para prosseguir a instalação.

Telas iniciais da instalação do CF.

Agora escolha a opção "Developer Edition", pois ela é free, com todas as funcionalidades liberadas para desenvolvimento na máquina local. Porém essa versão poderá ser acessada por 2 IP locais, mas informações em adobe.com/products/coldfusion/editions.

Opção Developer Edition.

Deixe a opção "Server configuration".

Configurações do servidor CF.

Deixe todas as opções escolhidas.

Serviços que irão compor o CF.

Para o diretório de instalação, vou escolher instalar dentro do diretório do XAMPP, assim fica tudo em uma pasta só.

Diretório de instalação.

Aceite os termos do LiveCycle para prosseguir a instalação.
Clique em Next.

Agora vamos configurar o servidor onde o ColdFusion irá rodar. Clique em Add e siga as seguintes configurações:

Incluindo servidor.

Web Server: Apache.
Configuration Directory: C:xamppapacheconf (diretório onde está o arquivo de configuração do Apache).
Directory and file name of server binary: C:xamppapachebinhttpd.exe (arquivo executável do serviço do Apache).

Configurações do Apache preenchidas, para funcionar com o ColdFusion.

Clique em OK e em Next.

Agora vamos configurar o diretório onde o Admin do ColdFusion será instalado, normalmente é no diretório HTDOCS do XAMPP (C:xampphtdocs).

Configurar o diretório onde o Admin do ColdFusion será instalado.

Posteriormente você pode alterar/configurar essa pasta em local diferente. Faço isso para poder ter mobilidade com meus arquivos, por exemplo, você pode colocar os arquivos em outra partição, em um pen driver; gosto de deixar os meus em um HD externo.
Digite a senha para acessar o Admin do CF.

Ative o RDS e coloque uma senha (pode ser a mesma do admin, mas indico utilizar só para servidores de testes).

Senhas do admin e RDS do ColdFusion.

Agora o instalador vai mostrar algumas informações da instalação, se tiver tudo correto, clique em Install.

Resumo do que foi configurado.

A instalação demora um pouco mesmo, é normal! Quando a instalação terminar, vai dar uma mensagem para executar o admin do CF. Clique em Done.

Provavelmente o sistema operacional vai querer fazer o download do arquivo, pois o Apache ainda não reconhece a extensão CFM.

Clique em cancelar e reinicie o serviço Apache. No painel de controle do XAMPP, clique em Stop do serviço Apache, logo que parar o serviço clique em Start.

Para poder concluir a configuração do admin do CF, acesse http://localhost/CFIDE/administrator/index.cfm OU vá em Iniciar >> Todos os Programas >> Adobe >> ColdFusion 8 >> Administrador.

Abrindo o admin do CF para finalizar as configurações.

Digite a senha que você escolheu na instalação e clique em login. Então irá para tela de configuração, espere alguns minutos enquanto ele configura o servidor. Esse procedimento só acontece na primeira vez que você acessa o Admin do CF. Após configurar ele dará a mensagem a seguir, clique em OK.

Telas de auto configuração do admin do CF.

Pronto, agora você já tem um servidor completo!

Tela inicial do admin do ColdFusion.

Espero ter ajudado as pessoas que estão iniciando ou querem aprender novas linguagens.

Fiz o tutorial passo a passo para que as pessoas possam acompanhar todo o processo, tela a tela. Depois de executar esses passos algumas vezes, tenho certeza que você estará "craque" em instalar os servidores na sua máquina.

Lembrando que o tutorial está disponível em http://www.marcionakano.com.br/blog/post/instalando-apache-mysql-coldfusion-php.pdf

Abraços, Marcio Nakano