Archive for the 'Tutoriais' Category

Editor de texto online ou wysiwg html

Um amigo questionou sobre os editores de texto online, mais conhecidos como wysiwg html.

Pesquisei e testei alguns editores feitos em JavaScript e o que mais me agradou foi o NicEdit.

O diferencial desse editor é o tamanho. Na versão que tenho aqui deu 34Kb.

A facilidade de utilização também foi um ponto crucial.

Veja exemplo:

Primeiro você inclui o script na sua página.
<script src=”nicEdit/nicEdit.js” type=”text/javascript”></script>

Depois você cria uma instância do editor, referente ao seu textarea, neste caso o id do meu textarea é “teste”.
<script type=”text/javascript”>
bkLib.onDomLoaded(function() {
 new nicEditor().panelInstance(’teste’);
});
</script>

Segue um exemplo online.

Segue os códigos para download.

Utilizei o PHP mas poderia utilizar qualquer outra linguagem Web.

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

Calendários em Java Script

Acredito que a maioria dos formulários possui algum campo de data (principalmente data de nascimento, rs).

Separei dois tipos de calendários em Java Script para poderem testar.

Gostei muito dos dois, pois são bem fáceis de implementar, além de não usar nenhuma programação do lado do servidor.

Um deles com designer muito bonito e com a possibilidade de customizar do jeito que você achar melhor (isso se achar necessário, pois as opções de layout e designer são muito boas).
O outro é puro HTML + CSS dentro de um único arquivo .js, ou seja, se você tiver um pouco de paciência pode customizar do jeito que quiser.

O Simple Calendar Widget é muito simples, tanto que é apenas um arquivo.

O Mootools-Calendar é uma classe de calendário para ser utilizado junto com o Mootools e tem diversas possibilidades de implementação.
Um ponto que me chamou a atenção, é que nesse caso o usuário não pode alterar a data via teclado, ou seja, a chance dele errar é mínima, mas acredito que existam casos onde essa alteração se faz necessária, procurei no site de origem mas não encontrei tal solução (um atributo ou algo parecido).

Clique aqui para ver o exemplo.

Clique aqui para baixar os arquivos.

Quem quiser ver outros exemplos:
Simple Calendar Widget http://www.garrett.nildram.co.uk/calendar/scw.htm
Calendar Mootools http://electricprism.com/aeron/calendar/

Marcio Nakano

Manipulando a saída de dados no browser CFxPHP

Pra galera que programa em várias linguagens diferentes e as vezes fica “encucada” pensando se existe uma função equivalente na outra linguagem que conhece, ai vai uma luz na manipulação de saída de dados no browser.

Estas funções devem ser utilizadas quando você deseja mostrar o conteúdo gerado até um determinado momento, nas situações em que o processamento da página é longo.

Pois bem, hoje me deparei com uma dessas situações, queria a função getPageContext().getOut().flush() disponível no ColdFusion MX porém para utilizar em PHP.

Solução em ColdFusion:


<cfloop index="x" from="1" to="10" step="1">
<cfloop index="randomindex" from="1" to="500000" step="1">
<cfset random=rand()>
</cfloop>
<cfoutput>Line to show #x#<br></cfoutput>
<cfflush>
</cfloop>



Pode ser melhor detalhado aqui.

ou ainda

getPageContext().getOut().flush();<br>

E no PHP:

<?php
for ($i = 0; $i<10; $i++){
echo "Line to show ".$i."<br>";
echo str_pad(”,4096)."\n";
flush();
sleep(2);
}
?>

O código PHP consegui aqui.

Next Page »