Ir para conteúdo
Fórum Script Brasil
  • 0

Usando Sessões No Php


Beraldo

Pergunta

Olá, pessoal. :D

Vou dar um exemplo simples de como passar valores entre páginas PHP por meio de sessões. O assunto é simples, mas vejo muito essa dúvida, e muitos artigos sobre isso usam funções consideradas obsoletas.

Todo script que usa sessão deve conter em seu início (antes de saídas ao navegador e códigos HTML) uma chamada à função session_start().

<?php
session_start();
//código que usa sessão
?>
Para registrar uma variável na sessão, não se deve mais usar session_registar(). Usa-se esta sintaxe:
<?php
session_start();
$_SESSION['nome'] = "Beraldo";
?>
Para verificar a existência de uma variável de sessão, não se usa mais session_is_registered().Faz-se assim:
<?php
session_start();
if (isset($_SESSION['nome']))
{
    echo $_SESSION['nome'];
}
?>
Nota:
Se register_globals estiver desativado, apenas membros da matriz associativa global $_SESSION podem ser registrados como variáveis de sessão. As variavéis de sessão restauradas apenas estarão disponíveis na array $_SESSION. O uso de $_SESSION (ou $HTTP_SESSION_VARS com PHP 4.0.6 ou anterior) é recomendado para melhor segurança e facilidade de leitura do código. Com $_SESSION, não há necessidade de usar as funções session_register(), session_unregister(), session_is_registered(). Variáveis de sessão são acessíveis como qualquer outra variável.
Fonte: http://br.php.net/session Para dar um exemplo prático, vamos criar estas páginas: script1.php
<?php
session_start();
$_SESSION['nome'] = "Beraldo";
echo "<a href=\"script2.php\">Link</a>";
?>
script2.php
<?php
session_start();
echo "Olá, " . $_SESSION['nome'];
?>
Execute o script1.php. Você verá o link "Link". Ao clicar nele, você será redirecionado para script2.php, que exibirá "Olá, Beraldo". Perceba que o valor da variável de sessão foi definido em script1.php, ou seja, esse valor foi transferido entre script1.php e script2.php. :) A função session_destroy() deve ser utilizada sempre que se deseja encerrar uma sessão. Ao criar um sistema de login usando sessões, deve-se colocar um código assim no sair.php (página que encerra a sessão iniciada): sair.php
<?php
session_start();
session_destroy();
header("Location: inde.php");
?>

Parece estranho, mas se deve iniciar a sessão com session_start() antes de "destruí-la", com session_destroy().

Mais informações sobre sessões:

http://br.php.net/session

Abraços,

Beraldo

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Òtimo artigo Beraldo, isso aí é uma ótima referência para session.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Boa sua iniciativa Beraldo.

mais como eu destruio o session ?

o codigo do meu script ta assim:

session_save_path("./sessions");
session_start();
nos outros includes não constão sessions, se eu destruir esses sessions da index que seria(pafiledb.php) eu já posso abrir a pagina assim:
http://www.meusite.com.br/privado/pafiledb/includes/download.php
pois quando eu abro a pagina consta esse erro:
Fatal error: Call to a member function on a non-object in /home/meusite/public_html/privado/pafiledb/includes/category.php on line 11
e a linha "on line 11" seria
$category = $pafiledb_sql->query($db, "SELECT * FROM $db[prefix]_cat WHERE cat_id = '$id'", 1);

eu quero colocar a pafiledb.php (pagina principal) no meio do meu site, pelo um phpincluido.

Aguardo Respostas

Obrigado.

Flavio

Link para o comentário
Compartilhar em outros sites

  • 0

O Meu utiliza session e SQL dai uso querys +\- assim:

$accinfo = mssql_query("SELECT * FROM MEMB_INFO WHERE memb___id = '$login'");

Dai eu deixo assim ao invés disso:

echo "Olá, " . $_SESSION['nome'];

Uso Isto:

Login: <? echo "$row[memb___id]" ?> ou Login: <? echo "$row[$login]" ?>

Também pode usar o comando Print que dá na msma ;)

Obrigado!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...