<?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>Arthur Sorriso &#187; Sessões</title>
	<atom:link href="http://www.arthursorriso.com.br/index.php/tag/sessoes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arthursorriso.com.br</link>
	<description>Só mais um blog... Será?!</description>
	<lastBuildDate>Sat, 30 Jan 2010 15:36:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tutorial PHP &#8211; Sistema de Login Utilizando Sessões</title>
		<link>http://www.arthursorriso.com.br/index.php/tutorial-php-sistema-de-login-utilizando-sessoes/</link>
		<comments>http://www.arthursorriso.com.br/index.php/tutorial-php-sistema-de-login-utilizando-sessoes/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 20:17:29 +0000</pubDate>
		<dc:creator>arthur</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Programaçã]]></category>
		<category><![CDATA[Sessões]]></category>
		<category><![CDATA[Sistema de Login]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.arthursorriso.com.br/?p=377</guid>
		<description><![CDATA[Neste tutorial mostrarei como fazer um simples sistema de login de usuário, utilizando sessões, e com consultas ao banco de dados.]]></description>
			<content:encoded><![CDATA[<p>Dando continuiade aos tutorias de PHP, vou mostrar agora como criar um sistema de login de usuário, conectando com o banco de dados MySQL, e gravando os dados em Sessões.</p>
<p>Primeiramente, você deverá ter um servidor com suporte PHP instalado em seu computador, ou então alguma hospedagem, para testar a aplicação. Se desejar instalar um servidor e não souber como, leia o <a href="http://www.arthursorriso.com.br/index.php/tutorial-php-instalacao-do-servidor-easyphp-apache-php-mysql/">tutorial de instalação do EasyPHP</a> que escrevi a alguns meses.</p>
<p>Vamos começar!</p>
<p>Primeiramente, crie o banco de dados. No nosso caso escolhi o nome &#8220;tutoriais&#8221;, pois irei utilizá-lo em outros artigos.</p>
<p>Depois que o banco estiver criado, o próximo passo é criar a tabela de usuarios.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`usuario`</span> <span style="color: #66cc66;">&#40;</span>
  <span style="color: #ff0000;">`id`</span> int<span style="color: #66cc66;">&#40;</span>6<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`nome`</span> varchar<span style="color: #66cc66;">&#40;</span>255<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`login`</span> varchar<span style="color: #66cc66;">&#40;</span>255<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`senha`</span> varchar<span style="color: #66cc66;">&#40;</span>255<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
  <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>Com a tabela criada, vamos agora povoá-la:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`usuario`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`nome`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`login`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`senha`</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Arthur Sorriso'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'sorriso'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'698dc19d489c4e4db73e28a713eab07b'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>O campo senha, está encriptado no formato MD5, para uma melhor segurança. Aqui ela significa apenas &#8220;teste&#8221;.</p>
<p>Agora, o próximo passo é criar o formulário de login.</p>
<p>form_login.php</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;strong&gt;Sistema de Login&lt;/strong&gt;
&lt;form action=&quot;autenticar.php&quot; method=&quot;post&quot;&gt;
Login: &lt;input name=&quot;login&quot; type=&quot;text&quot; /&gt;
Senha: &lt;input name=&quot;senha&quot; type=&quot;password&quot; /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Acessar&quot; /&gt;&lt;/form&gt;</pre></div></div>

<p>Explicando o código:</p>
<p>A primeira linha é apenas um título, para ficar organizado. Nada de mais.</p>
<p>Na segunda começamos a criar o formulário. Utilizamos a tag form. O parâmetro action informa o destino que a página vai quando o botão &#8220;Acessar&#8221; é presionado. O parâmetro &#8220;method&#8221; pode ser &#8220;get&#8221; ou &#8220;post&#8221;. Para este utilizaremos &#8220;post&#8221; por ser mais seguro. No &#8220;get&#8221;, os dados do formulário serão enviados via endereço no browser, o que não queremos.</p>
<p>Na terceira linha criaremos o campo para o usuário digitar o login. Para isso utilizamos a tag &#8220;input&#8221; com tipo texto.</p>
<p>Na quarta linha criaremos o campo para senha. É análogo ao campo de login, a única diferença é o tipo, que agora passa a ser &#8220;password&#8221; de forma que quando o usuário digitar algo, isto aparecerar como asterisco(*).</p>
<p>Na quinta linha criaremos o botão para submeter o nosso formulário. Para isso utilizamos a tag &#8220;input&#8221; com tipo &#8220;submit&#8221;. E depois fechamos o formulário.</p>
<p>Vamos agora criar a página que fará a conexão com o nosso banco de dados.<br />
connect.php</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;root&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dbname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;tutoriais&quot;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$host</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erro ao tentar se conectar!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dbname</span><span style="color: #009900;">&#41;</span>or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Erro ao selecionar o banco!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Explicando o código:</p>
<p>Primeiramente pegamos as variáveis necessárias para a conexão no banco de dados. A primeira é o host para conectar. Na maioria dos casos será localhost mesmo. Depois usuário e senha do banco de dados. E por último o banco de dados que será utilizado. Como falei lá em cima, o banco que utilizarei é o tutoriais.</p>
<p>Depois criaremos a nossa conexão. Para isso utilizaremos a função mysql_connect e passaremos como parâmetros as variáveis de cima. Caso ocorra um erro, será mostrada a mensagem escrita dentro do die().</p>
<p>Por fim fazemos a seleção do banco de dados que iremos utilizar.<br />
Simples.</p>
<p>Agora vamos para a parte mais complicada, mas não difícil, do tutorial. A página que será responsável pela autenticação do usuário, criando assim sua sessão.</p>
<p>autenticar.php</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connect.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Recebendo os dados do formulário</span>
<span style="color: #000088;">$login</span> <span style="color: #339933;">=</span> <span style="color: #990000;">addslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;login&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$senha</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">addslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;senha&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM usuario WHERE login = '<span style="color: #006699; font-weight: bold;">$login</span>' AND senha = '<span style="color: #006699; font-weight: bold;">$senha</span>'&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> 1<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//conferindo o login e senha para segurança</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$login</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'login'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//se entrou, entao o login é igual</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$senha</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'senha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">//se entrou, então a senha também é igual</span>
			<span style="color: #000088;">$logado</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$id_user</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">//criando a sessão</span>
			<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;id_user&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$id_user</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;logado&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$logado</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">//depois que criarmos a sessão, </span>
                        <span style="color: #666666; font-style: italic;">//vamos redirecionar para a página privada</span>
			<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: cadastro.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;A senha não confere!&quot;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;O usuário não confere!&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Usuário ou senha inválidos. Tente novamente.&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Explicando o código:</p>
<p>Primeiramente incluimos o arquivo connect.php, a fim de estabelecermos a conexão com o banco de dados.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//Recebendo os dados do formulário</span>
<span style="color: #000088;">$login</span> <span style="color: #339933;">=</span> <span style="color: #990000;">addslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;login&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$senha</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">addslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;senha&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Depois iremos receber as variáveis passadas pelo formulário. A função addslashes() serve para tratarmos nossas Strings recebidas, afim de evitar qualquer ataque de Sql Injection. Ela funciona da seguinte forma: sempre que encontrar qualquer aspa simples (&#8217;) ou dupla (&#8221;), ele adiciona uma barra invertida antes dela, ficando por exemplo \&#8217;. Uma das formas de invasão de sites mais simples é esta, digitando por exemplo &#8216;or 1=1 &#8211;. Esta é uma forma de se evitar. Continuando, a função md5() serve para encriptar a senha, já que a do banco está encriptada, a que se passa no formulário deverá também o ser, para comparamos.</p>
<p>Na próxima criamos uma variável para receber nossa string sql. Ela seleciona tudo (*) da tabela usuario, onde o login for igual ao da variável e a senha também. Simples.</p>
<p>Na próxima linha executamos o sql.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM usuario WHERE login = '<span style="color: #006699; font-weight: bold;">$login</span>' AND senha = '<span style="color: #006699; font-weight: bold;">$senha</span>'&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></pre></div></div>

<p>A seguir, testamos se o comando retornou alguma linha na consulta. Se não, o usuário e a senha poderá ter sido escrito errado, ou até mesmo não existir.</p>
<p>Se a consulta estiver correta, entraremos no nosso if.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//conferindo o login e senha para segurança</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$login</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'login'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//se entrou, entao o login é igual</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$senha</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'senha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></pre></div></div>

<p>A primeira linha dentro do if cria um array na variável $user com os dados coletados no banco de dados.</p>
<p>A seguir, conferimos se o conteúdo da variável é igual ao conteúdo vindo pelo formulário, evitando assim também alguma invasão.</p>
<p>Depois de conferidos o usuário e a senha, iremos ao próximo trecho:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//se entrou, então a senha também é igual</span>
<span style="color: #000088;">$logado</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$id_user</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//criando a sessão</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;id_user&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$id_user</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;logado&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$logado</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//depois que criarmos a sessão, vamos redirecionar para a página privada</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: cadastro.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Primeiramente atribuimos o valor 1 à variável $logado, já que o usuário escreveu tudo corretamente, e depois guardamos o id do usuário no banco na variável $id_user.</p>
<p>Agora podemos criar nossa sessão inicializando ela primeiramente, e depois criando suas variáveis.</p>
<p>A seguir, redirecionamos à página que queremos que os usuários logados acessem.</p>
<p>As próximas linhas são apenas fechamentos dos ifs e tratamentos de erros, com os elses.</p>
<p>Agora iremos para a nossa página privada, que só poderá ter seu conteúdo visto se o usuário estiver logado.</p>
<p>cadastro.php</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//Iniciando a sessão</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connect.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'logado'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> 1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM usuario WHERE id = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_user'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$rs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;strong&gt; Olá &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nome'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;!&lt;/strong&gt; &quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;a href=&quot;</span>logout<span style="color: #339933;">.</span>php<span style="color: #0000ff;">&quot;&gt;Sair&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Esta é sua página privada. 
                Nos próximos tutoriais continuaremos com esta página.&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Você não está logado. Tudo está oculto para você!&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Explicando o código:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connect.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'logado'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></pre></div></div>

<p>Nas primeiras linhas iniciamos a nossa sessão, e incluímos o arquivo de conexão com o banco. A seguir testamos se usuário está realmente logado, vendo se o conteúdo da variável de sessão $_SESSION['logado'] é igual a 1, conforme definimos no arquivo autenticar.php.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM usuario WHERE id = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_user'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;strong&gt; Olá &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$user</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nome'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;!&lt;/strong&gt; &quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;a href=&quot;</span>logout<span style="color: #339933;">.</span>php<span style="color: #0000ff;">&quot;&gt;Sair&lt;/a&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Esta é sua página privada. 
        Nos próximos tutoriais continuaremos com esta página.&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Agora escrevemos o nosso conteúdo oculto a não logados. Aqui fiz apenas uma simples consulta para pegar o nome do usuário, e exibí-lo nas boas vindas. Em seguida, apresentei o link para o usuário se deslogar do sistema.</p>
<p>O restante do código é apenas fechamento de if, e um else para os usuários não logados.</p>
<p>Por fim, a página de logout.</p>
<p>logout.php</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//Iniciando a sessão</span>
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//destruindo a sessão</span>
<span style="color: #990000;">session_destroy</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">Header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: form_login.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Nela nós destruimos a sessão, e redirecionamos para a página de login.</p>
<p>No próximo tutorial, irei abordar a parte de inserção no banco de dados. Pretendo fazê-lo como uma continuação deste, modificando nossa página cadastro.php, a fim de cadastrar novos usuários.</p>
<p>Bom por hoje é só. Espero ter sido claro no tutorial.</p>
<p>Se tiverem dúvidas é só perguntar nos comentários.</p>
<p><strong><a href = "http://www.arthursorriso.com.br/wp-content/uploads/2009/06/login.zip">Arquivos do artigo para download</a></strong></p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arthursorriso.com.br/index.php/tutorial-php-sistema-de-login-utilizando-sessoes/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
	</channel>
</rss>

