Marcelo Torres

Entradas etiquetadas como ‘Tutoriais’

Formulário de contato em PHP

14/04/2009 · 37 Comentários

Olá pessoal, alguns meses atrás eu estava sofrendo pra pra fazer um formulário de envio de dados de um form para o email de um cliente através de uma area do site, consegui enfim! Então vou compartilhar nesse post o desenvolvimento de um formulário de contato simples para seu site, utilizando a função mail() do php, com validação de campos(inclusive de email), sem spam e com estilização em css.

Irei dividir em 3 partes:

  • Construção do form em (X)HTML;
  • Implementação do arquivo de envio em PHP.
  • Estilização do form com CSS ;


Vamos começar então, com a construção do form em (X)HTML:

contato.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br">
<head>
<meta name="author" content="Marcelo Torres" />
<meta http-equiv="content-type" content="text/html; charset=iso-utf-8" />
<title>Formulário de contato em PHP</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<form action="contato.php" method="post">
<fieldset>
<legend>Entre em contato</legend>
<small>*Campos de Preenchimentos Obrigatório</small><br />
<?php include("enviar.php")?>
<label for="nome"> * Seu nome:</label>
<input id="nome" name="nome" size="31" type="text" value="<?echo $nome ;?>" /><br />
<label for="email">* Seu email:</label>
<input id="email" name="email" size="31" type="text" value="<?echo $email ;?>" /><br />
<label for="assunto">* Assunto:</label>
&nbsp;<input id="assunto" maxlength="50" name="assunto" size="15" type="text" value="<?echo $assunto ;?>" /><br />
<label for="mensagem">* Mensagem:</label><br />
<textarea id="mensagem" cols="53" rows="5" name="mensagem"><?echo $mensagem;?></textarea><br />
<input name="enviar" type="submit" value="Enviar" class="botao"/>
<input name="cancelar" type="reset" value="Limpar" class="botao"/>
<p>Formulário de contato em PHP, por <a title="blog do autor" href="http://marcelowd.wordpress.com">Marcelo Torres</p>
</fieldset>
</form>
</body>
</html>

Nota I: o value tem um echo em php com as variáveis( que nós iremos ver ainda), para no caso de um erro na validação do form, os dados digitados continuar nos campos, para que o usuário não tenha que digitar denovo.

Nota II: o comando “<?php include(“enviar.php”)?>”, está incluindo o arquivo
enviar.php, onde estão localizados, as validações dos campos e é claro o script para envio para seu email, vamos fazer este arquivo então.


enviar.php

<?php
/*Variaveis do Formulario*/
$nome = trim(@$_POST['nome']);/*recebe os dados digitados no campo "nome"*/
$email = trim(@$_POST['email']);/*recebe os dados digitados no campo "email"*/
$assunto_user = trim(@$_POST['assunto']);/*recebe os dados digitados no campo "assunto"*/
$mensagem = trim(@$_POST['mensagem']);/*recebe os dados digitados no campo "mensagem"*/

$enviar = @$_POST['enviar'];/*Botão enviar*/

/*variavel que contará os erros*/
$erros = 1;

/*transforma em variavel global, a vari&atilde;¡vel email*/
global $email;
if($enviar)/*Se o botão enviar for pressionado, faça...*/
{
			/*Verifica campo "nome" vazio*/
			if($nome == "")
				{
				$erros++;
				echo "<small class=\"erro\">O Campo nome esta vazio</small><br />";
				}
				elseif(is_numeric($nome))/*verifica se foi digitado n&uacute;mero no campo*/
				{
				$erros++;
				echo "<small class=\"erro\">Voc&ecirc; digitou numero no campo nome</small><br />";
				}
			/*Verifica campo "email" vazio*/
			if($email == "")
				{
				$erros++;
				echo "<small class=\"erro\">O Campo email est&aacute; vazio</small><br />";
				}
			/*Verifica campo "assunto" vazio*/
			if($assunto_user == "")
				{
				$erros++;
				echo "<small class=\"erro\">O Campo assunto est&eacute; vazio</small><br />";
				}
			/*Verifica campo mensagem vazio*/
			if($mensagem == "")
				{
				$erros++;
				echo "<small class=\"erro\">O Campo mensagem est&eacute; vazio</small><br />";
				}	

					/*verifica email, se digitado incorretamente*/
					$email = str_replace (" ", "", $email);
					$email = str_replace ("/", "", $email);
					$email = str_replace ("@.", "@", $email);
					$email = str_replace (".@", "@", $email);
					$email = str_replace (",", ".", $email);
					$email = str_replace (";", ".", $email);

					if(strlen($email)<8 || substr_count($email, "@")!=1 || substr_count($email, ".")==0)
					{
					$erros++;
					echo "<small class=\"erro\">Por favor, digite seu <b>e-mail</b> corretamente.</small><br />";
					}
					if($erros <= 1)/*se não tiver algum erro continuara abaixo, se tiver é exibido as messagens configuradas acima*/
					{

					/*Configuramos o e-mail para o qual serão enviadas as informações*/

					$seuemail = "seuemail@exemplo.com";/*email de destino*/

					$assunto = "contato do site";/*assunto padrão do email(não o digitado pelo úsuario)*/

					/*Configuramos os cabeçalhos do e-mail*/
					$headers = "MIME-Version: 1.0\r\n";
					$headers .= "Content-type: text/html; charset=utf-8\r\n";/*para o envio com formatação HTML. Charset po ser iso-8859-1 também*/
					$headers .= "From: $seuemail \r\n";/*Para "seu email"*/

					/*Configuramos o conteúdo do e-mail*/
					$conteudo = "<strong>Nome:</strong> $nome<br />";/*vai para o seu email o que foi digitado no campo "nome"*/
					$conteudo .= "<strong>Email:</strong> $email<br />";/*vai para o seu email o que foi digitado no campo "email"*/
					$conteudo .= "<strong>Assunto:</strong> $assunto_user<br />";/*vai para o seu email o que foi digitado no campo "assunto"*/
					$conteudo .= "<strong>Mensagem:</strong> $mensagem<br />";/*vai para o seu email o que foi digitado no campo "mensagem"*/

					/*Enviando o e-mail...*/
					$enviando = mail($seuemail, $assunto, $conteudo, $headers);

					/*verifica se o e-mail foi enviado com sucesso*/
						if($enviando) {
							echo "Mensagem enviada com sucesso!";
							echo "<script>alert(\"Mensagem enviada com sucesso!\")</script>";
							echo "<script>window.location = \"index.php\"</script>";
						}
						else{/*seu ouve algum erro...*/
							echo "<p><b>$nome</b><br />Ouve um erro no envio, desculpe-nos pelo transtorno!!!</p>";
						}
				}
}
?>

Sem notas dessa vez, os comentários(em verde) explicam tudo :).

Agora vamos a parte divertida, o CSS, :D

style.css

*{padding:0; margin:0;}/*reset de margem e espaçamento para todos os elementos*/

body{letter-spacing:2px;font-size:13px;color:#333;line-height:36px;}

fieldset{width:500px;padding:20px;margin:50px;}
input{width:350px;font-size:18px;color:#333;border:solid 1px #333;}
input.botao{width:100px;}

small{color:#008800;}
small.erro{color:#f00;}

baixe os arquivos completos aqui!

Categorias: (x)html/css · Desenvolvimento · Design · PHP · Tableless · Tutoriais · Web Standards
Etiquetado: ,

Instalando o TinyMCE no seu site

13/01/2009 · 20 Comentários

Depois de muita procura na Internet, depois de muitos testes, eu finalmente achei um editor de texto em JavaScript que satisfazesse minhas necessidades, testei o FCKeditor, NicEdit(esse eu gostei muito, é bem leve e simples,pena que não “produza” código em (X)HTML ) e o TinyMCE, esse ultimo realmente superou as expectativas, ele é leve, bem completo, tem 2 opções de uso: o Simples e o Avançado, além de skins, integração fácil de se fazer e fácil de personalizar e o melhor, dentro dos padrões.

O TinyMCE transforma automaticamente qualquer textarea (obviamente os textareas que estão na página, cuja o script de integração esteja aplicado ) em um editor HTML Rich Text, segue abaixo então como fazer essa integração:

  • Baixe o pacote no site do TinyMCE
  • Descompacte na pasta onde está a página que deseja instalar o TinyMCE
  • Abra o arquivo desejado e entre as tag <head>…</head>, coloque uma dessas opções:

Modo Simples:

<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
	tinyMCE.init({
		mode : "textareas",
		theme : "simple"
	});
</script>

Modo Avançado:

<script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
	tinyMCE.init({
		// General options
		mode : "textareas",
		theme : "advanced",
		plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

		// Theme options
		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : true,

		// Example content CSS (should be your site CSS)
		content_css : "css/content.css",

		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js",

		// Replace values for the template plugin
		template_replace_values : {
			username : "Some User",
			staffid : "991234"
		}
	});
</script>

Nota #1: Caso você ache alguns botões desnecessários basta exclui-los/desabilitá-los, nas seguintes linhas:

theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",

Nota #2:Para mudar o posicionamento da bara de ferramenta no textarea, basta alterar as seguintes linhas:

theme_advanced_toolbar_location : "top", //poderá mudar para bottom
theme_advanced_toolbar_align : "left", //poderá mudar para right
theme_advanced_statusbar_location : "bottom",//poderá mudar para top
theme_advanced_resizing : true,

Nota #3: Sobre a o pacote de tradução, sinceramente não consegui ainda faze-lá funcionar, então resolvi eu mesmo acessar a pasta: tinymce/jscripts/tiny_mce/themes/advanced/langs/ e editar os arquivos…um pouquinho de inglês técnico já basta!

Tradução

UPDATE: O Vinicius me avisou ali em baixo nos comentários, que enviou um pacote de tradução atualizado para o site oficial do TinyMCE, eu já testei e está funcionado muito bem. Então vamos ver como fazer a tradução:
1 - Faça o download do pacote em português – link http://tinymce.moxiecode.com/download_i18n.php – selecionando o checkbox(portuguese) e clicando no botão download no final da lista.

2- com o pacote extraido, copie as pastas para o diretório – \tinymce\jscripts\tiny_mce – e substitua os pacotes.

3- Feito os passos 1,2 corretamente adicione a seguinte linha(em vermelho):

[...]tinyMCE.init({
// General options
 language : "pt", // adicione esta linha
mode : "textareas",
theme : "advanced",[...]

Você pode adicionar esta linha tanto modo simples, quanto no avançado.

Pronto, agora é só se divertir!

<pre>&lt;script type=”text/javascript” src=”../jscripts/tiny_mce/tiny_mce.js”&gt;&lt;/script&gt;
&lt;script type=”text/javascript”&gt;
tinyMCE.init({
mode : “textareas”,
theme : “simple”
});
&lt;/script&gt;</pre>
<strong>Modo Avançado:</strong>
<pre>&lt;script type=”text/javascript” src=”../jscripts/tiny_mce/tiny_mce.js”&gt;&lt;/script&gt;
&lt;script type=”text/javascript”&gt;
tinyMCE.init({
// General options
mode : “textareas”,
theme : “advanced”,
plugins : “safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template”,

// Theme options
theme_advanced_buttons1 : “save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect”,
theme_advanced_buttons2 : “cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor”,
theme_advanced_buttons3 : “tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen”,
theme_advanced_buttons4 : “insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak”,
theme_advanced_toolbar_location : “top”,
theme_advanced_toolbar_align : “left”,
theme_advanced_statusbar_location : “bottom”,
theme_advanced_resizing : true,

// Example content CSS (should be your site CSS)
content_css : “css/content.css”,

// Drop lists for link/image/media/template dialogs
template_external_list_url : “lists/template_list.js”,
external_link_list_url : “lists/link_list.js”,
external_image_list_url : “lists/image_list.js”,
media_external_list_url : “lists/media_list.js”,

// Replace values for the template plugin
template_replace_values : {
username : “Some User”,
staffid : “991234″
}
});
&lt;/script&gt;</pre>

Categorias: Desenvolvimento · Software-Livre · Tutoriais · Web Standards
Etiquetado: , ,

Instalando o Xampp para Linux

31/08/2008 · Deixe um comentário

Um tempo atrás, fim um tutorial para a instalaçáo do Xampp no Windows, estava pensando em fazer um para a versão Linux, mas seria perca de tempo, já que há um excelente no site oficial do programa.

Segue o Link

http://www.apachefriends.org/pt_br/xampp-linux.html

Lembrando: o Xampp é um programa desenvolvido em PHP/MySQL que instala e configura de uma só vez, o Apache, MySQL, PHP, Perl entre outros aplicativos voltado para o desenvolvimento Web

Categorias: Desenvolvimento · GNU/Linux · Software-Livre · Tutoriais
Etiquetado: , ,

Tutorial do Inkscape – Desenhando o Tux – #parte2

06/07/2008 · Deixe um comentário

Vamos continuar o Tutorial então, agora acrescentaremos os efeitos de luz no Tux, essa parte é bem simples, vamos lá então!

Abra o arquivo .svg, da primeira parte que você salvou(ou esqueceu de salvar?![:0] não fez ainda? então clique aqui e refaça ), para que possamos dar continuidade na edição do desenho.

8) Efeito da cabeça

Faça uma elipse(circulo) branca, um pouco menor do que a da cabeça, posicione entre os olhos e a mesma e pegue a ferramenta de degrades(gradiente)

com a ferramenta selecionada, estique o degrade na diagonal, para que fique desse jeito:

Bom, daqui para frente basta copiar as formas diminuir o tamanho(mantendo o mesmo formato) e aplicar os gradientes

9) O Bico

10) Os Braços

11) Os pés

Quase pronto, só a barriga. Na barriga não pŕecisaremos de uma duplicação de objeto, porque não será feito efeito de luz e sim de sombreamento nele própio, só para n&atildeo ficar com aspecto de “barriga reta”. Iremos destacar mais cor do que transparência para que não seja preciso editar as cores do gradiente, porque o objeto de trás é preto, assim sendo ajudará a fazer o efeito de sombreamento e o branco ficará automático, pois é a cor padráo do objeto, veja como abaixo então:

12) A barriga

Estique o gradiente na vertical, e deixe a parte branca para cima

Pronto! finalizado seu Tux


Dicas úteis

Para editar as cores do gradiente, basta selecionar o “objeto”, pegar a ferramenta “gradiente” e ir em “editar” na barra de propriedades do gradiente

Barra de propridades do gradiente

No editor de gradiente selecione as paradas(ou camadas) de cores que estão no gradiente atual(onde esta destacado em vermelho na imagem abaixo) e modifique-ás nas barras de cores em baixo.


Dúvidas, criticas e sugestões deixe um comentários que te responderei com muito prazer!

Inté++ Pessoal!

Categorias: Design · GNU/Linux · Software-Livre · Tutoriais
Etiquetado: ,

Tutorial do Inkscape – Desenhando o Tux – #parte1

21/06/2008 · 2 Comentários

Enfim consegui tempo para começar a fazer uns tutoriais, vou começ pelo InkScape, cujo to aprendendo a mexer agora, e o que eu já aprendi vou passar pra quem quer aprender, bom chega de lenga, lenga, e vamos ao que interessa, [;)]

Caso você não tenha o InkScape no seu PC baixe-o aqui:
Versão para linux
Ou ainda atualize os pacotes no Gerencioador de pacotes da sua distribuição(APT/Synaptic (gerenciador de DEB’s do Debian, Ubuntu, Kurumin e muitas outras), YUM/YUMex (gerenciador de RPM’s do Fedora), urpmi/MCC (gerenciador de RPM’s do Mandriva) e do Pkgtools (gerenciador de TGZ’s do Slackware – fonte: http://www.maxraven.info/gerenciador-de-pacotes-instalacao-automatizada-de-programas.html), proucure por “InkScape”, marque a opção e faça a instalação
ou visite o site oficial

Notas antes de começar!:

Para ordenar um objeto aperte as seguintes teclas:

  • levantar = [PageUp]
  • Abaixar = [PageDown]
  • Levar para o topo = [Home]
  • Levar para o Fundo = [End]

    Para tirar o contorno de um objeto, faça o seguinte:

    • na parte inferior-esquerdo do “Ink” clique com o botão direito do mouse e selecione “remover traço”.

    Pronto podemos começar!

    1) vamos desenhar a cabeça do Tux

    selecione a ferramenta “circulo”

    e segure a tecla [Ctrl] para fazer um circulo perfeito e pinte com a cor preta

    2) Agora o corpo

    com o circulo da cabeça selecionado precione [Ctrl + D], para duplicar o objeto, feito isso aumente seu tamanho com a tecla a tecla [Ctrl] precionada e posicione como mostra a imagem abaixo

    3) passo 3, os olhos

    faça mais um circulo, porém sem pressionar [Ctrl], pois o olho tem que ser oval, não esqueça de pintar de branco. Depois de feito o olho duplique, precione a tecla [h] para inverter na horizontal e achate um pouco, para dar um ar ainda mais simpático ao nosso Tux.

    para fazer a parte de dentro do olho, basta seguir o mesmo procedimento e é lógico diminuir…observe a imagem abaixo

    4) o Bico

    No bico eu escolhi por usar um circulo também, mas agora vamos utilizar a ferramenta “editar caminho de nós”

    Com essa ferramenta selecionada o circulo feito e pintado de amarelo, clique no botão “converter os objetos selecionados em caminhos”

    note que aparecerá 4 pontos, que quando clicados surge mais 2 pontos para que possamos ajustar o objeto

    tente ajustar, para que fique na forma de um triângulo de cabeça para baixo e de ângulos arrendondados e posicione sobre os dois olhos

    5) 5º passo os pés

    essa parte é simples, usaremos a mesma ferramenta para ajustar o objeto,(que será um circulo também [;D]) “editar caminho de nós”, depois “converter os objetos selecionados em caminhos”, pinte de amarelo, duplique e inverta horizontalmente [h].

    6) a vez dos braços

    siga os mesmo passos do pés, você terá que ajustar mais os nós para chegar no formato desejado, não esqueça de pintar de preto, os braços irão ficar assim:

    tudo junto…

    7) enfim o ultimo passo…a barriga

    duplique o circulo(eita!!! esses circulos estão me perseguindo, [:)]) do passo 2(o corpo), pinte-o de branco, diminua a largura, posicione entre os pés e o corpo, e pronto ta feito seu tux, na versão mais simples!!! Veja como ficou:

    Bom pessoal por enquanto é isso, na parte 2 irei mostrar como colocar efeitos de luz e reflexo, para dar um aspecto melhor ao Tux, até lá então

    Add to Technorati Favorites

    Categorias: Design · GNU/Linux · Software-Livre · Tutoriais
    Etiquetado: ,