Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jugleni Jr

Aprenda a criar um sistema de sessão.

Recommended Posts

Primeiro você preciza criar seu bando de dados MySQL onde ficarão armazenados os usuarios cadastrados."

 

BANCO DE DADOS:

CREATE TABLE login ( 
id int(5) NOT NULL auto_increment primary key,
login varchar(10) NOT NULL,
senha varchar(10) NOT NULL
); 

 

 

Após criar a tabela, insira um login e uma senha nela, no exemplo iremos usar a login: openscript e senha: 1234

 

Agora deve-se criar um arquivo de configuração do sistema, o qual se chamará "conf.php"

 

conf.php

 

PHP [/tr][tr]<?php

$host = "localhost"; // Caminho para o servidor MySQL

$user = "login"; // Login para conecta com o MySQL

$pass = "senha"; // Senha para conectar com o MySQL

$base = "nome_da_base"; // Nome do Banco de Dados

 

//FAZENDO A CONEXÃO COM O BANCO DE DADOS

$con = mysql_connect($host, $user, $pass);

$banco = mysql_select_db($base);

//TABELA USANDA PELO SISTEMA

$tbl_login = "login";

?>

[/tr]

 

Comentário do código:

Há dois itens a serem modificados. O primeiro passo é configurar as variáveis da linhas 02 até a linhas 05, que são as informações do banco de dados. Em segundo lugar, deve-se configarar a variavel $tbl_login que conterá o nome da sua tabela no banco de dados.

 

 

Cria-se agora a página inicial do sistema, aquela que terá o formulário para o usuário entrar com o login e a senha. Esta página se chamrá "index.php":

 

index.php

 

01 | <html>02 | <head>03 | <title>Sistema de Login Utilizando Sessão - Open SCRIPT </title>04 | </head>05 | <body bgcolor="#FFFFFF" text="#000000">06 | form method="post" action="login.php">07 | <bable width="200" border="0" cellspacing="3" cellpadding="0" align="center">08 | <tr>09 | <td><font face="Verdana" size="1">Login</font></td>10 | <td><input type="text" size="20" name="login"></td>11 | </tr>12 | <tr>13 | <td><font face="Verdana" size="1">Senha</font></td>14 | <td><input type="password" size"20" name="senha"></td>15 | </tr>16 | <tr>17 | <td colspan="2" align="center"><input type="submit" value="Entrer"></td>18 | </tr>19 | </table>20 | </form>21 | </body>22 | </html>

Comentário do código

Essa página faz com que as informações digitadas no campo login e senha (linhas 11 e 15) sejam enviadas para a página login.php (linha 06) para ser feito o processo de autenticação.

 

 

Agora, será visto como funciona a página "login.php", que fará todo o 'trabalho sujo' do sistema. Ou seja, será ela que erá verificar se o login e a senha digitados na página "index.php" estão cadastrados no banco de dados. Portanto, este processo deve ser feito com calma e bastante atenção.

 

login.php

 

PHP [/tr][tr]<?php

//Arquivo de configuração

include "conf.php";

//Selecionando e recuperando dados

$sql = "SELECT * FROM $tbl_login WHERE login = '$login' AND senha = '$senha'";

$rs = mysql_qury($sql);

$tot = mysql_num_rows($rs);

//Verificar login e senha

if ($tot == 0) {

echo "Login e/ou senha inválidos<br>Clique <a

href="

index.php">aqui</a> para voltar e tente novamente.";

}

else {

session_star("login");

session_name();

session_destroy();

session_register("login","senha");

header ("Location:pagina.php");

exit;

}

?>

[/tr]

 

 

Comentário do código

Linha 03: Faz um include com o arquivo conf.php, para conectar o banco de dados, e para saber qual o valor armazenado na variável $tbl_login;

Linha 05: Faz uma query, selecionando os dados da tabela $tbl_login (login) quando o login e senhas digitados no index.php estejam cadastradas no banco de dados;

Linha 06: Executa a query da variavel $sql;

Linha 07: Verifica registros retornados;

Linha 09: Parte fundamental do sistema, verifica se o total de registros armazenados na variável $tot é igual (==) a 0;

Linha 10: Se resultado for TRUE (valor da variável $tot igual a 0), o login e senhas no index.php não estão cadastrados no banco de dados. Isso faz com que retorne uma mensagem de erro para o visitante;

Linha 13: Se o resultado for FALSE (valor da variavel $tot diferente de 0), então ele executa as linhas seguintes;

Linha 14: Inicializa uma sessão, no caso a sessão login;

Linha 15: Retorna e/ou ajusta o nome da sessão, nesse caso deixamos em branco;

Linha 16: Fecha qualquer sessão que esteja aberta no momento;

Linha 17: Regista as variaveis login e senha na sessão;

Linha 18: Redireciona para a página protegida (pagina.php).

 

 

O próximo passo é criar a página que verificará se o visitante está logado ou não no sistema que deseja entrar.

 

login2.php

 

PHP [/tr][tr]<?php session_start("login");

if(!(session_is_registered("login") AND

session_is_registered("senha"))) {

header("Locaton:index.php");

exit;

}

$login=$HTTP_SESSION_VARS [login];

$senha=$HTTP_SESSION_VARS [senha];

?>

[/tr]

 

 

Comentário do código

Linha 02: Inicializa asessão. Repare que dentro de session_start("") está escrita login. Caso tenha sido mudado esse nome na pagina login.php (linha 14) deve-se mudar aqui também.

Linha 03: Verifica se as variáveis login e senha estão registradas na sessão login. Se as variaveis não estiverem cadastradas na sessão, então o sistema redirecionará o visitante para a página index.php, para que ele possa digitar o login e a senha no formulário. session_is_registered("");

Linha 04: Redireciona o visitante para o inde.php, caso ele não tenha feito o login.

Linha 07: Armazena na variável $login os dados da variável de sessão login.

Linha 08: Armazena na variável $senha os dados da variável sessão senha.

 

Para proteger uma página com login e senha, basta colocar o seguinte código antes de tag <html> da página:

 

Página a ser protegida

 

PHP [/tr][tr]<?php

include "login2.php";

?>

[/tr]

 

Comentário do código

A linha 02 faz um include na pagina login2.php, que tem a função de verificar se o visitante está logado no sistema.

 

 

Postado por Jugleni Jr

Confirá outros codigos com comentarios posso a passo no site: http://www.openscritp.com.br

 

Comente sobre o codigo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse codigo tah numa revista de programaçãovoce pode ter copiado esse codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem legal este código.

 

Valeu!!! :D

 

 

Só vou colocar algumas coisa (alguns erros de digitação que encontrei). É que eu utilizei da "técnica COPIAR/COLAR" , então ficou meio chato pra descobrir onde o código estava errado. Vou colocar caso alguém que esteja começando não encontre os erros.

 

index.php (linha 6) - tá faltando < antes do form

login.php (linha 6) - mysql_query (está mysql_qury)

login.php (linha 14) - session_start (está session_star)

login2.php (linha 4) - Location (está locaton)

 

 

Só isso. Valeu pelo código.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vei, acho que este código esta furado.

 

Ó é o seguinte, você criou a tela de login index.php deu o "action no form" como login.php, onde login.php vai verificar se o usuário esta cadastrado ou não certo.

Só que você não recuperou os dados passados pela tela index.php nas variaveis $login e $senha.

 

Tipo, na tela login.php teria que ter duas linhas de comando assim:

 

$login = trim($_POST["login"]);

$senha = trim($_POST["senha"]);

 

Obs:

trim: elimina os espaços em branco no começo e no final do texto

[/b]["login"] e ["senha"]:[/b] são os nomes dos campos da tela index.php

 

Fazendo isso você irá recuperar os dados que foram digitatos nos campos de login e senha da tela index.php

 

fora uns erros de digitação.

 

Bom acho que é isso kra da uma olhada ai falowwww

 

At,

Wernon

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funfa!Independente de você por ou não:<?phpinclude "login2.php";?> ele abre igual a pagina! :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.