Aplicativos em PHP/Trabalhando em PHP com/Session
11.5 - Trabalhando com Session em PHP
[editar | editar código-fonte]Crie um pequeno aplicativo com os seguintes arquivos. Copie os arquivos para um diretório no seu servidor web e chame o index pelo browser:
index.php
<? ''session_start();'' ?> <center><h1>Trabalhando com SESSION em PHP</h1> Podemos preservar valores de variáveis enquanto durar uma sessão do browser através do uso de SESSION.<br> Para isso devemos startar a sessão em cada página que desejamos usar esta variável com<br> <br> sesssion_start();<br><br> Lembrando que esta função deve vir antes de qualquer comando que mande algo para a tela, caso <br> o session esteja configurado para usar cookie.<br> Na primeira página deve ter um formulário com algum campo que devemos usar no session.<br> Experimente gravar a URL de uma das páginas internas e acessar diretamente (http://localhost/session3) <br>Primeiro feche todas as seções do browser e depois abra o browser com essa URL.<br> <br> Veja que SESSION é muito bom para preservar o valor de variáveis entre páginas de um site numa seção. <br> Portanto seu uso é muito útil quando pretendemos autenticas os visitantes de todas as as páginas de um site.<BR> Como também para outros usos em que pretendemos reaproveitar o valor de variáveis (algo como global).<BR> Acompanhe este exemplo para ver detalhes.<br><br><br> <form method=post action=session2.php> Login<input type=text size=8 name=login><br> <input type=submit value=Enviar> </form></center>
destruir.php
<? session_start(); if (isset($_SESSION['login'])){ session_unset(); // Eliminar todas as variáveis da sessão session_destroy(); // Destruir a sessão echo "Entre. Sessão Destruida. <a href=session3.php>Session3</a><br>"; } else { echo "Acesso não autenticado!"; } ?>
session2.php
<? session_start(); $_SESSION['login']=$_POST['login']; if (isset($_SESSION['login'])){ echo "Entre. Session2. <a href=session3.php>Session3</a>"; } else { echo "Acesso não autenticado!"; } ?>
session3.php
<? session_start(); if (isset($_SESSION['login'])){ echo "Entre. Session3. <a href=session4.php>Session4</a><br>"; echo "<a href=destruir.php>Drestruir Sessão</a>"; } else { echo "Acesso não autenticado!"; } ?>
session4.php
<? session_start(); if (isset($_SESSION['login'])){ echo "Entre. Session4. <a href=session5.php>Session5</a>"; } else { echo "Acesso não autenticado!"; } ?>
session5.php
<? session_start(); if (isset($_SESSION['login'])){ echo "Entre. Session5. <a href=index.php>Index</a><br><br>"; echo "Informações: <br>ID da Sessão: <b>" . session_id() . "</b><br>Variável mantida pela SuperGlobal \$_SESSION: <b>" . $_SESSION['login']; } else { echo "Acesso não autenticado!"; } ?>
Como as variaveis ficam fixas em todas as páginas de um site.Um exemplo: Quando você faz login em um site ao qual tem um cadastro.E seu nome de login fica lá em cima em todas as páginas referente a sua conta.Essas variaveis que "vivem" em todo o site são chamadas "variaveis de sessão($_SESSION).
Para cria-las é muito simples:
primeiro devemos começar sempre antes de qualquer tag HTML ou escapamento do comando echo("");
ficaria assim um exemplo:
<?php session_start(); // sempre chamamos a sessão dessa forma $login="cloud"; // passamos um valor qualquer a variavel $login "ainda não é a sessao" $_SESSION['login']=$login; ?>
agora sim,criamos uma variavel session que tem o nome login(....['login']) e ela possue agora um valor que é da variavel $login(essa variavel $login não precissa necessariamente ter um valor fixo,ela pode vir de um form entenderam?
quando quisermos mostrar ou usar o valor da variavel $login em outra pagina,ja podemos pois agora ela esta dentro de uma session um exemplo de como chama-la em outra pagina(arquivo)
<?php session_start(); // sempre que usarmos as sessions devemos chamar esse codigo sempre no inicio do script if(isset($_SESSION['login'])){// verifica se existe a varavel session $login=$_SESSION['login']; // passa o valor da variavel session para outra variavel so que uma variavel dentro do mesmo arquivo echo($login);// cloud }else{ echo("vc nao passou pelo arquivo anterior"); }
Capítulo sobre Session na Documentação Oficial do PHP
http://www.php.net/manual/pt_BR/ref.session.php
Artigos Sobre Session em PHP
http://www.revistaphp.com.br/print.php?id=79
http://www.scriptbrasil.com.br/forum/lofiversion/index.php/t79221.html
http://www.htmlstaff.org/ver.php?id=5353
http://maozinhadaweb.blogspot.com/2007/05/tutorial-de-php-parte-3-sesses-e.html
http://www.devshed.com/c/a/PHP/Sessions-and-Cookies/
===================UTILIZANDO SESSION EM VISUAIS ALTERNATIVOS DE SITE===========
[editar | editar código-fonte]Uma boa pedida para trabalhar com SESSION, seria a possibilidade de mudar o visual do site.
exemplo:default.css,green.css
página de escolha de visual do site:
if(isset($_GET['css'])){ $_SESSION['css']=$_GET['css']; }else{ echo "<form><select name='css'> <Option>default</option> <Option>green</option></select></form>"; }
- No import do css, utilize ao invés do nome do arquivo a variável $_SESSION['css'].
- PS: Não esquecer de fazer antes do import:
if(empty($_SESSION['css'])){$_SESSION['css']="default";}