<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Como Criar Sites &#124; Aprenda grátis como fazer seu site &#187; form</title>
	<atom:link href="http://www.comocriarsites.com/tag/form/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.comocriarsites.com</link>
	<description>Aprenda a criar sites, html e manhas para fazer seu site.</description>
	<lastBuildDate>Wed, 06 Jan 2010 12:51:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fazendo Formulário HTML (Como Fazer Fomulário HTML) &#8211; Form</title>
		<link>http://www.comocriarsites.com/html/fazendo-formulario-html-como-fazer-fomulario-html-form/</link>
		<comments>http://www.comocriarsites.com/html/fazendo-formulario-html-como-fazer-fomulario-html-form/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 15:41:12 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[charset]]></category>
		<category><![CDATA[criar site]]></category>
		<category><![CDATA[enctype]]></category>
		<category><![CDATA[fazer site]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[target]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=150</guid>
		<description><![CDATA[Para que serve um formulário? Um formulário serve para o usuário interagir de alguma forma com o site, enviando informações, escolhendo ou selecionando certas funções do site ou entrar em contato com o criador ou dono do site.
Como posso fazer um fomulário HTML? O HTML tem alguns elemento que ajudam na criação de formulários e [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">P</span>ara que serve um formulário? Um formulário serve para o usuário interagir de alguma forma com o site, enviando informações, escolhendo ou selecionando certas funções do site ou entrar em contato com o criador ou dono do site.</p>
<p>Como posso fazer um fomulário <em>HTML</em>? O <em>HTML</em> tem alguns elemento que ajudam na criação de formulários e na interação usuário-website. Esses elemento apresentam diversas formas de apresentar ao usuário informações que o site quer que o usuário preencha, selecione ou marque. Para quem programa em outras linguagens, os elementos <em>HTML</em> para fazer formulário são os padrões, de caixa de texto, seleção de um ou vários em uma lista, marcar opções e também escrever textos em várias linhas.</p>
<p>Vamos ver como fazer o elemento Form (tag <strong><em>&lt;form&gt;</em></strong>) do <em>HTML</em>, que é o elemento pai de todos os outros elementos de formulário <em>HTML </em>e no fim desse post teremos links para outros posts descrevendo os outros elementos <em>HTML</em> de formulário.</p>
<h2>A Tag <em><strong>&lt;form&gt;</strong></em> &#8211; Elemento Form</h2>
<p>A tag <em><strong>&lt;form&gt;</strong></em> é utilizada para fazer um formulário, nela define-se vários aspectos do formulário como para onde ele é enviado e que forma de envio é utilizado. Sempre que for fazer um formulário, todos os componentes do formulário devem ficar entre as tags <em><strong>&lt;form&gt;</strong></em> e <em><strong>&lt;/form&gt;</strong></em>.</p>
<p>Vamos ver alguns atributos da tag de fomulário <em><strong>&lt;form&gt;</strong></em>.</p>
<h4><em>Action</em></h4>
<p>- O atributo <em>action</em> da tag <em><strong>&lt;form&gt;</strong></em> diz para onde o formulário deve ser enviado. O valor desse atributo é o endereço, estático ou relativo, de onde está a página que vai tratar esse formulário.</p>
<h4><em>Method</em></h4>
<p>- O <em>method</em> diz como enviar os dados do formulário, pode ser pelo método <em>GET</em> ou <em>POST</em>. Se você não especificar o método (atributo <em>method</em>), o padrão é o <em>GET</em>.</p>
<p>Para saber mais sobre os métodos <em>GET</em> e <em>POST</em> acesse <a title="Como Funciona os Métodos GET e POST - Diferenças" href="http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/">Como Funciona os Métodos GET e POST &#8211; Diferenças</a>.</p>
<h4><em>Name</em></h4>
<p>- Esse atributo nomeia o fomulário <strong><em>&lt;form&gt;</em></strong>, fazendo ele poder ser identificado por folhas de estilo e scripts (como Javascript). Esse atributo está em desuso, é utilizado somente para compatibilidade com códigos HTML antigos e os códigos HTML novos devem utilizar o atributo <em>id</em>.</p>
<h4><em>Id</em></h4>
<p>- Esse atributo pode ser utilizado em qualquer elemento HTML, ele define uma identificação única para o elemento HTML e deve ser único em um documento.</p>
<h4><em>Target</em></h4>
<p>- Indica onde o resultado da submissão do formulário HTML será exibida. Pode ser o nome de um frame (ou iframe, tag &lt;iframe&gt;), ou uma janela, ou uma dessas seguintes constantes:</p>
<p><strong><em> &#8211; _blank</em></strong> &#8211; O resultado do formulário HTML é exibido em uma janela nova e sem nome. alguns navegadores deixam a opção para o usuário, de exibir esse resultado em uma nova aba.</p>
<p><em><strong> &#8211; _self</strong></em> &#8211; Exibe a página referenciada na mesma página ou no mesmo frame que o link ou formulário está. Essa é a opção padrão.</p>
<p><em><strong>- _parent</strong></em> &#8211; Exibe a página referenciada no frame pai do frame que o link ou formulário está. Se o frame não tiver frame pai, essa opção fica igual a opção &#8220;<em><strong>_self</strong></em>&#8220;.</p>
<p><em><strong>- _top</strong></em> &#8211; Exibe a página referenciada na tela inteira do navegador, cancelando qualquer frame que a página anterior continha.</p>
<h4><em>Enctype</em></h4>
<p>- Esse atributo diz como o formulário HTML vai codificar os dados enviados. Se você não quiser enviar nenhum arquivo (upload) para o servidor, você pode não colocar esse atributo no seu formulário HTML (form), que ele vai ficar com o valor padrão, que vai funcionar normal.</p>
<p>Os valores para esse atributo podem ser:</p>
<p><strong><em>- application/x-www-form-urlencoded</em></strong> &#8211; Esse é o valor padrão, se você quiser saber como os dados são codificados, entre em <a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1">http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1</a>.</p>
<p><em><strong>- multipart/form-data</strong></em> &#8211; Se você quer fazer envio de arquivos (upload), via formulário HTML, você deve utilizar esse valor para o atributo <em><strong>Enctype</strong></em>. O valor padrão não é suficiente para enviar grandes quantidades de dados binários. Esse valor deve ser utilizado quando desejas enviar arquivos, dados binários ou caracteres não ASCII.</p>
<p>Para outros valores desse atributo, consulte: <a href="http://www.w3.org/TR/html401/types.html#type-content-type">http://www.w3.org/TR/html401/types.html#type-content-type</a>.</p>
<h4><a><em>Accept</em></a></h4>
<p>- Esse atributo define quais tipos de conteúdo (content types), que o servidor vai processar corretamente. Colocam-se os tipos separados por vírgula.</p>
<p>O atributo <em><strong>accept</strong></em> especifica que tipos de arquivos (<em><strong>&lt;input type=&#8221;file&#8221;&gt;</strong></em>), o navegador deve filtrar, para não enviar arquivos para o servidor que não seja correspondente a um dos tipos especificados nesse atributo.</p>
<p>Se você quiser uma lista dos tipos (MIME types) de conteúdo, entre em: <a href="http://www.w3.org/TR/html401/references.html#ref-MIMETYPES">http://www.w3.org/TR/html401/references.html#ref-MIMETYPES</a> e em: <a href="http://www.iana.org/assignments/media-types/">http://www.iana.org/assignments/media-types/</a></p>
<h4><a><em>Accept-charset</em></a></h4>
<p>- Esse atributo define qual tipo de codificação de caracteres (<em>charset</em>) o servidor vai identificar os dados enviados pelo formulário HTML.</p>
<p>Para ver uma lista de codificação de caracteres (<em>charset</em>), acesse: <a href="http://www.w3.org/TR/html401/references.html#ref-CHARSETS">http://www.w3.org/TR/html401/references.html#ref-CHARSETS</a>.</p>
<p>Até a data de escrita desse post, e mesmo sem testar, o Internet Explorer não aceita esse atributo.</p>
<h2>Exemplo de Formulário HTML (<em>&lt;form&gt;</em>)</h2>
<p>Vamos ver um exemplo simples do uso de formulário HTML. O exemplo irá mostrar alguns campos, onde todos devem ser preenchidos para o envio do formulário. Se algum campo não for preenchido, aparece uma mensagem de erro no campo que não foi preenchido.</p>
<p>O nosso arquivo para executar esse código é o <em><strong>contato.php</strong></em>.</p>
<h3>O Arquivo <em>contato.php</em>.</h3>
<p>Nesse arquivo temos o nosso código PHP que processa o fomulário HTML quando ele é enviado.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;?php

$Enviar = $_POST["Enviar"];

if(strlen($Enviar) &gt; 0) { // o formulário foi enviado
	$nome = $_POST["nome"];
	$email = $_POST["email"];
	$telefone = $_POST["telefone"];
	$departamento = $_POST["departamento"];
	$mensagem = $_POST["mensagem"];

	if((strlen($nome) &gt; 0) &amp;&amp; (strlen($email) &gt; 0) &amp;&amp; (strlen($telefone) &gt; 0) &amp;&amp;
		(strlen($departamento) &gt; 0) &amp;&amp; (strlen($mensagem) &gt; 0)) { // todos os dados preenchidos
		print("&lt;strong&gt;Dados do Formulário:&lt;strong&gt;&lt;BR&gt;");
		print("&lt;strong&gt;Nome:&lt;/strong&gt;".$nome."&lt;BR&gt;");
		print("&lt;strong&gt;Email:&lt;/strong&gt;".$email."&lt;BR&gt;");
		print("&lt;strong&gt;Telefone:&lt;/strong&gt;".$telefone."&lt;BR&gt;");
		print("&lt;strong&gt;Departamento:&lt;/strong&gt;".$departamento."&lt;BR&gt;");
		print("&lt;strong&gt;Mensagem:&lt;/strong&gt;".$mensagem."&lt;BR&gt;");
	}
	else { // nem todos os dados preenchidos, voltar para o formulário
		// dizer em msg de erro o que falta no formulário
		if(strlen($nome) == 0)
			$erro_nome = "&lt;span class=\"msg_erro\"&gt;O campo Nome deve ser preenchido&lt;/span&gt;";
		if(strlen($email) == 0)
			$erro_email = "&lt;span class=\"msg_erro\"&gt;O campo Email deve ser preenchido&lt;/span&gt;";
		if(strlen($telefone) == 0)
			$erro_telefone = "&lt;span class=\"msg_erro\"&gt;O campo Telefone deve ser preenchido&lt;/span&gt;";
		if(strlen($departamento) == 0)
			$erro_departamento = "&lt;span class=\"msg_erro\"&gt;O campo Departamento deve ser preenchido&lt;/span&gt;";
		if(strlen($mensagem) == 0)
			$erro_mensagem = "&lt;span class=\"msg_erro\"&gt;O campo Mensagem deve ser preenchido&lt;/span&gt;";

		// colocando o departamento selecionado como selecionado
		$$departamento = "selected=\"true\"";

		require("contatoform.php");
	}
}
else { // o formulário não foi enviado
	require("contatoform.php");
}

?&gt;</pre>
</div>
<p>Onde tem a chamada do array <em><strong>$_POST</strong></em>, pegamos os dados enviados do formulário, pelo método <em>POST</em>. Para pegar os dados enviados pelo método <em>GET</em>, utilizamos o array <strong><em>$_GET</em></strong>. No nosso exemplo, somente enviamos dados pelo método <em>POST</em>, então somente utilizaremos o array <em><strong>$_POST</strong></em>.</p>
<p>No array <em><strong>$_POST</strong></em>, temos todos os nomes  das variáveis que enviamos do formulário, como chaves do array (array associativo), e seus valores como os valores do formulário. Se temos um campo tipo <em>text</em>, com nome <em>&#8220;email&#8221;</em> (<em>name=&#8221;email&#8221;</em>), e enviamos esse formulário pelo método <em>POST</em>, teremos no <em>PHP</em>, o array <strong><em>$_POST["email"]</em></strong> com o valor do que foi escrito no campo email.</p>
<p>No nosso exemplo, se o formulário foi enviado, ele pega todos os valores que foram enviados e testa, para ver se algum está em branco (com número de caracteres igual a zero). Se todos estiverem preenchidos, o programa mostra eles na tela. Se algum não tiver sido preenchido, o programa testa para ver quais não foram preenchidos e seta uma mensagem de erro personalizada para cada campo não preenchido, e volta a mostrar o fomulário.</p>
<p>A linha que faz o campo selecionável (<strong><em>selecbox</em></strong>) ficar como estava quando foi enviado, merece um pouco mais de explicação. A linha é a seguinte: <strong>$$departamento = &#8220;selected=\&#8221;true\&#8221;";</strong>. Ela está simplesmente, colocando na variável com o nome do valor da variável <strong>$departamento</strong>, o valor<strong> &#8220;selected=\&#8221;true\&#8221;"</strong>. Por exemplo, se a minha variável <strong>$departamento</strong> for igual a <strong>&#8220;comercial&#8221;</strong>, depois de executar essa linha, eu terei uma variável <strong>$comercial</strong> com o valor igual a <strong>&#8220;selected=\&#8221;true\&#8221;"</strong>. Isso tudo para, no arquivo <em>HTML</em>, eu poder selecionar automaticamente o que foi estava selecionado no fomulário, no campo de seleção (<strong>selectbox</strong>). Vamos entender isso mais a frente.</p>
<h3>O Arquivo contatoform.php.</h3>
<p>Nesse arquivo tem o nosso formulário em <em>HTML</em> e um pouco de <em>PHP</em> para deixar o formulário mais dinâmico.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;
	&lt;title&gt;Exemplo de Formulário HTML/PHP&lt;/title&gt;

	&lt;link rel="stylesheet" type="text/css" href="estilo.css" /&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;form name="form_contato" action="contato.php" method="post"&gt;
	&lt;div&gt;Nome: &lt;?php echo($erro_nome); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;input name="nome" id="nome" type="text" value="&lt;?php echo($nome); ?&gt;" /&gt;&lt;/div&gt;

	&lt;div&gt;Email: &lt;?php echo($erro_email); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;input name="email" id="email" type="text" value="&lt;?php echo($email); ?&gt;" /&gt;&lt;/div&gt;

	&lt;div&gt;Telefone: &lt;?php echo($erro_telefone); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;input name="telefone" id="telefone" type="text" value="&lt;?php echo($telefone); ?&gt;" /&gt;&lt;/div&gt;

	&lt;div&gt;Departamento: &lt;?php echo($erro_departamento); ?&gt;&lt;/div&gt;
	&lt;div&gt;
		&lt;select name="departamento" id="departamento"&gt;
			&lt;option value=""&gt;...&lt;/option&gt;
			&lt;option value="comercial" &lt;?php echo($comercial); ?&gt;&gt;comercial&lt;/option&gt;
			&lt;option value="financeiro" &lt;?php echo($financeiro); ?&gt;&gt;financeiro&lt;/option&gt;
			&lt;option value="juridico" &lt;?php echo($juridico); ?&gt;&gt;jurídico&lt;/option&gt;
			&lt;option value="suporte" &lt;?php echo($suporte); ?&gt;&gt;suporte&lt;/option&gt;
		&lt;/select&gt;
	&lt;/div&gt;

	&lt;div&gt;Mensagem: &lt;?php echo($erro_mensagem); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;textarea name="mensagem" id="mensagem" rows="5" cols="25"&gt;&lt;?php echo($mensagem); ?&gt;&lt;/textarea&gt;&lt;/div&gt;

	&lt;div&gt;&lt;input name="Enviar" value="Enviar" type="submit" /&gt;&lt;/div&gt;
&lt;/form&gt;

&lt;/body&gt;
&lt;/html&gt;/</pre>
</div>
<p>Esse arquivo simplesmente define 5 campos e um botão de submeter o formulário, sendo que um desses campos é um campo selecionável (<strong>selectbox</strong>).</p>
<p>Todos eles tem no atributo <em>value</em>, um trecho de código em <em>PHP</em>, por isso precisamos que a extensão desse arquivo seja reconhecida como extensão para processamento do <em>PHP</em>. Esse trecho serve para definir no formulário <em>HTML</em>, caso de erro, o que o usuário já tinha escrito antes, porque sem isso o fomulário viria todo em branco novamente, e isso é ruim, pois se eu errei somente uma coisinha no fomulário, e ele voltar em branco, terei que preenche-lo todo novamente.</p>
<p>No caso do <em><strong>selecbox</strong></em>, eu tenho que fazer com que a seleção do usuário volte a aparecer se o formulário der erro, então coloco um trecho <em>PHP</em> exibindo uma variável com o nome do <em>value</em> da opção (<strong>option</strong>) em questão, para no script de processamento, ele tratar isso, como foi explicado no arquivo <strong><em>contato.php</em></strong>.</p>
<p>Podes perceber que tenho várias classes de folha de estilo no documento, e o documento também chama um arquivo de folha de estilo, que eu colocarei somente para mostrar a mensagem de erro em destaque.</p>
<h3>O Arquivo estilo.css</h3>
<p>Esse arquivo é bem simples, abaixo o código:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>.msg_erro {
	color: red;
	font-weight: bold;
}</pre>
</div>
<p>Com essa classe eu destaco as minhas mensagens de erro.</p>
<h2>O Exemplo Pronto</h2>
<p>Você pode ver esse exemplo pronto em <a href="http://www.comocriarsites.com/exemplos/formulariohtmlsimples/">http://www.comocriarsites.com/exemplos/formulariohtmlsimples/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/fazendo-formulario-html-como-fazer-fomulario-html-form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Funciona os Métodos GET e POST &#8211; Diferenças</title>
		<link>http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/</link>
		<comments>http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/#comments</comments>
		<pubDate>Tue, 05 May 2009 03:00:06 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=152</guid>
		<description><![CDATA[Quando falamos em como enviar um formulário, vem em mente os métodos GET e POST, esses são os métodos utilizados para enviar um formulário. Mas quando fazemos uma requisição HTTP, nós sempre utilizamos um desses métodos, normalmente o GET.
Se você digita um endereço na barra de endereço seu navegador e aperta a tecla enter (ou [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">Q</span>uando falamos em como enviar um formulário, vem em mente os métodos <em>GET</em> e <em>POST</em>, esses são os métodos utilizados para enviar um formulário. Mas quando fazemos uma requisição <em>HTTP</em>, nós sempre utilizamos um desses métodos, normalmente o <em>GET</em>.</p>
<p>Se você digita um endereço na barra de endereço seu navegador e aperta a tecla <em>enter</em> (ou clica no botão <em>ir</em>), o navegador faz uma requisição <em>HTTP</em> para o servidor do endereço digitado e o método dessa requisição é o <em>GET</em>. Se você clica em um <em>link</em> em um site, o navegador também se encarrega de fazer um requisição <em>HTTP</em> com o método <em>GET</em>, para buscar o conteúdo da página que você clicou.</p>
<h3>Como Funciona o Método <em>GET</em></h3>
<p>O método <em>GET</em> utiliza a própria <em>URI</em> (normalmente chamada de <em>URL</em>) para enviar dados ao servidor, quando enviamos um formulário pelo método <em>GET</em>, o navegador pega as informações do formulário e coloca junto com a <em>URI</em> de onde o formulário vai ser enviado e envia, separando o endereço da <em>URI</em> dos dados do formulário por um &#8220;?&#8221; (ponto de interrogação).</p>
<p>Quando você busca algo no Google, ele faz uma requisição utilizando o método <em>GET</em>, você pode ver na barra de endereço do seu navegador que o endereço ficou com um ponto de interrogação no meio, e depois do ponto de interrogação você pode ler, dentre outros caracteres, o que você pesquisou no Google.</p>
<h3>Quando Utilizar o Método <em>GET</em></h3>
<p>Você deve utilizar o método <em>GET</em> sempre que a requisição que você faz não altere o estado do servidor, tipo uma consulta, uma busca ou qualquer outra coisa que, além de não alterar o estado do servidor, também possa sempre reproduzir os mesmos resultados quando fizer a mesma requisição e for passado os mesmos parâmetros para esta requisição.</p>
<p>Voltando ao exemplo do Google, na ferramenta de busca dele, quando a busca é feita, ele deixa a <em>URI</em> toda na barra de endereço do navegador, você pode, por exemplo, copiar essa <em>URI</em> e mandar para alguém, dizendo para ele acessar o terceiro item da busca, e se esse alguém acessar essa mesma <em>URI</em>, vai achar o mesmo terceiro item que você indicou, quantas vezes for necessário (lógico que de tempos em tempos, o Google atualiza as posições das páginas).</p>
<p>O nome dado ao comportamento de quando você deve utilizar o <em>GET</em> é <em>idempotente</em>, que nada mas é do que já o explicado acima: uma requisição <em>idempotente</em> deve retornar a mesma coisa não importa quantas vezes ela é feita, ou seja, deve ter sempre os mesmos efeitos colaterais, não importando quantas requisições <em>idempotentes</em> são feitas.</p>
<p>Requisição com o método <em>GET</em> pode ter seu retorno <em>cacheados</em> (armazenados em <em>cache</em>), pois não se alteraria o retorno se fizéssemos uma mesma requisição <em>GET</em>. Isso pode causar um erro comum, que se você precisar sempre que as requisições <em>GET</em> cheguem ao servidor, elas podem não chegar sempre que uma requisição é feita, pois se estiver no <em>cache</em> de algum <em>proxy</em> ou do seu navegador, o retorno pode vir antes de chegar no servidor. Se você precisa que uma requisição chegue sempre no servidor, não utilize <em>GET</em>.</p>
<p>O método <em>GET</em> ainda pode ter limitações quanto ao tamanho dos dados a serem enviados e também ao que pode ser enviado. Quanto ao tamanho, pode-se ter uma restrição ao tamanho da <em>URI</em> que pode ser enviada em um requisição, e se seus dados ultrapassarem esse tamanho, provavelmente ocorrerá um erro, ou seus dados vão ser passados incompletos.</p>
<p>Quanto ao que pode ser enviado, como os dados vão ser enviados pela URI, só poderão ser enviados caracteres aceitos na <em>URI</em>, se você quer enviar dados binários (como arquivo, imagens e outros), não poderá usar <em>GET</em>.</p>
<h3>Como Funciona o Método <em>POST</em></h3>
<p>O método <em>POST</em> envia os dados colocando-os no corpo da mensagem. Ele deixa a <em>URI</em> separada dos dados que serão enviados e com isso podemos enviar qualquer tipo de dados por esse método. Quando você faz um registro em um formulário e depois de enviar a <em>URI</em> não tem o ponto de interrogação separando os dados que você digitou, provavelmente o formulário foi enviado pelo método <em>POST</em>.</p>
<h3>Quando Utilizar o Método <em>POST</em></h3>
<p>Utilizamos o método <em>POST</em> sempre que vamos alterar alguma coisa no servidor, ou sempre que queremos enviar dados que não podem ser enviados pelo método <em>GET</em>, como arquivos. Esse método é utilizado em formulário de cadastro e registro de usuários, envio de dados para alteração do sistema, cadastro de dados em sistemas de sites e outros.</p>
<p>O retorno de uma requisição com método <em>POST</em> normalmente não deve ser <em>cacheada</em> (armazenada em <em>cache</em>) então se você quiser que uma requisição sempre chegue ao servidor quando ela for feita, utilize <em>POST</em>.</p>
<p>A diferença é simples, sempre que for buscar ou apenas consultar alguma coisa, utilize <em>GET</em> e se for fazer alguma alteração com a requisição, envio de arquivo ou os dados forem muitos, utilize <em>POST</em>.</p>
<h3>Diferenças no Lado do Servidor entre <em>GET</em> e <em>POST</em> (<em>PHP</em>, <em>CGI</em>)</h3>
<p>Enviar dados pelo método <em>GET</em> e <em>POST</em> é diferente, então, o servidor pega esses dados de diferentes maneiras.</p>
<p>No <em>PHP</em>, quando enviamos dados pelo método <em>GET</em>, ele cria um array identificado por <em>$_GET</em>, que contém todos os dados enviados por esse método. Quando enviamos os dados pelo método <em>POST</em>, o <em>PHP</em> cria um array identificado por <em>$_POST</em>, também com todos os dados enviados por esse método.</p>
<p>Já em um script <em>CGI</em>, quando utilizamos o método <em>GET</em>, os dados são recebido em uma variável de ambiente, e com o método <em>POST</em>, os dados são recebidos pela entrada padrão (<em>stdin</em>).</p>
<p>Links interessantes sobre <em>GET</em> e <em>POST</em>:</p>
<p>- <a title="Methods GET and POST in HTML forms - what's the difference?" href="http://www.cs.tut.fi/~jkorpela/forms/methods.html">Methods GET and POST in HTML forms &#8211; what&#8217;s the difference?</a><br />
- <a title="Hypertext Transfer Protocol -- HTTP/1.1 - 9 Method Definitions" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">Hypertext Transfer Protocol &#8212; HTTP/1.1 &#8211; 9 Method Definitions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Função getElementById() do Javascript</title>
		<link>http://www.comocriarsites.com/javascript/funcao-getelementbyid-do-javascript/</link>
		<comments>http://www.comocriarsites.com/javascript/funcao-getelementbyid-do-javascript/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 07:21:52 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[getElementById]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=131</guid>
		<description><![CDATA[A função getElementById() do Javascript é uma função muito utilizada quando queremos fazer um site mais interativo. Essa função pode retornar o objeto de qualquer elemento na página que tenha um id único, e também funciona na maioria dos navegadores.
A função getElementById() do Javascript é bem fácil de usar, e é útil em muitas ocasiões. [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">A</span> função <em>getElementById()</em> do Javascript é uma função muito utilizada quando queremos fazer um site mais interativo. Essa função pode retornar o objeto de qualquer elemento na página que tenha um id único, e também funciona na maioria dos navegadores.</p>
<p>A função <em>getElementById()</em> do Javascript é bem fácil de usar, e é útil em muitas ocasiões. Vamos exemplificar algumas para melhor entendimento.</p>
<h3><em>getElementById()</em> para Tratamento e Envio de Formulário</h3>
<p>Vamos supor que eu quero fazer alguma verificações do formulário antes de envia-lo. Eu posso chamar uma função Javascript que faz uso do <em>getElementById()</em> para fazer as verificações necessárias antes de realmente enviar o formulário, porque caso as verificações não procedam, eu posso não enviar o formulário. Vamos ao código:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;html&gt;
&lt;head&gt;
	&lt;title&gt;Exemplo de getElementById() no Formulário&lt;/title&gt;

&lt;style type="text/css"&gt;

#msg_erro {
	color: red;
	font-weight: bold;
}

&lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;script language="JavaScript"&gt;

function teste_submit()
{
	var obj_form = document.getElementById('form_teste');
	var obj_nome = document.getElementById('nome_teste');
	var obj_cargo = document.getElementById('cargo_teste');
	var obj_msg_erro = document.getElementById('msg_erro');
	var msg_erro = '';

	if(obj_nome.value == '')
		msg_erro = 'campo NOME vazio';
	else if(obj_cargo.value == '')
		msg_erro = 'campo CARGO vazio';

	if(msg_erro == '')
		obj_form.submit();
	else
		obj_msg_erro.innerHTML = msg_erro;
}

&lt;/script&gt;

&lt;form id="form_teste" action="http://www.comocriarsites.com" method="post"&gt;
Nome: &lt;input type="text" id="nome_teste" name="nome_teste"&gt;&lt;BR&gt;
Cargo: &lt;input type="text" id="cargo_teste" name="cargo_teste"&gt;&lt;BR&gt;
&lt;input type="Button" value="Enviar" onclick="teste_submit();"&gt;
&lt;/form&gt;
&lt;div id="msg_erro"&gt;&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>Algumas pessoas que conhecem um pouco de Javascript podem dizer &#8220;<em>eu posso fazer a mesma coisa com o onSubmit</em>&#8220;, mas nós não estamos vendo o <em>onSubmit</em> e sim o <em>getElementById()</em>. <img src='http://www.comocriarsites.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Você pode ver esse exemplo da função <em>getElementById()</em> funcionando em <a title="Exemplo de getElementById() no Formulário" href="http://www.comocriarsites.com/exemplos/getElementById_form.html">Exemplo de getElementById() no Formulário</a>.</p>
<p>No código acima temos um formulário HTML com dois campos e um botão de enviar, uma tag <em><strong>&lt;div&gt;</strong></em> para mensagem de erro e uma função Javascript identificada por <em>teste_submit()</em>. Quando o botão de enviar for pressionado, vai ser chamada a função Javascript <em>teste_submit()</em>. Essa função pega os objetos do formulário, dos campos do fomulário e do <strong><em>&lt;div&gt;</em></strong>, verifica se algum dos campos está vazio, e se algum deles estiver vazio, ele grava uma string em uma variável local (<em>msg_erro</em>) e depois faz essa string aparecer na tela. Se os dois campos não estiverem vazios, a função submete (envia) o formulário.</p>
<p>Os passos de pegar os objetos dos elementos do documento são feitos com a função <em>getElementById()</em>, que é uma função do documento, por isso tenho que colocar o <em>document</em> antes da função<em> getElementById()</em>. Como parametro da  função <em>getElementById()</em> tenho que colocar o idetificador único do elemento, que se define pelo atributo <em>id</em>.</p>
<p>Se você está usando uma linguagem no lado do servidor (PHP, ASP ou outras), isso faz com que reduza a carga no servidor, pois tratamos certos erros antes de realmente enviar o formulário. E isso agiliza o processo para o cliente também, que não precisa esperar carregar uma nova página para saber que o formulário que ele tentou enviar está faltando alguma coisa ou está errado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/javascript/funcao-getelementbyid-do-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
