Ir para conteúdo

POWERED BY:

Arquivado

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

GicaLilica

autenticação com sessao e firebird

Recommended Posts

nao sei se vai ajudar postar o que fiz hehehe ai vai<?php// Inicia Sessãosession_start();// Função para conexão com o banco de dados//require "funcoes.php";// Recupera o login informado na página anterior$login = isset($_POST["login"])?addslashes(trim($_POST["login"])):FALSE;// Recupera a senha$senha = isset($_POST["senha"])?trim($_POST["senha"]):FALSE;// Usuário não forneceu a senha ou o loginif(!$login || !$senha){ header("Location: senha_login.htm"); exit;}/*** Executa a consulta no banco de dados.* Caso o número de linhas retornadas seja 1 o login é válido,* caso 0, inválido.*///db_connect() or die ("Erro na Conexão com Banco de Dados");$host = 'localhost:C:\SCIP\BD\IMOV.GDB';$dbh = ibase_connect($host, "SYSDBA", 'masterkey') or die ('Erro de Conexão!');$stmt = "SELECT * FROM PROPRIETARIO WHERE PROPRIETARIO.PRT_EMAIL = '". $login . "'";$result = ibase_query($dbh, $stmt);$row = ibase_fetch_object($result);// Caso o usuário tenha digitado um login válido o número de linhas será 1..if($row->PRT_EMAIL == $login){ // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão //$dados = mysql_fetch_array($result_id); // Agora verifica a senha if(!strcmp($senha, $row->PRT_SENHA)) { // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário $_SESSION["id_usuario"] = addslashes($row["PRT_CODIGO"]); $_SESSION["nome_usuario"] = addslashes($row["PRT_NOME"]); header("Location: index2.php"); exit; } // Senha inválida else { header("Location: senha_invalida.htm"); exit; }}// Login inválidoelse{ header("Location: login_invalido.htm"); exit;}?>ele nao tras a informação do banco de dados,e olha que ta tudo certo a sql, ja vi e revi. Dai nao grava nada na sessao e nao consigo acessar a variavel da sessao com o login da pessoa na pagina index2.php :( deu pra entender +/-?beijos e obrigadaGi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, detalhe.essse codigo modificado pra atender ao banco do meu amigo funciona certinho e o meu nao!nao conseguimos achar o erro, e em funcções.php do include é so criando uma conexao com o bancobeijos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você colocou os campos de sua tabela no banco de dados? Eles estão corretos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não entendi essa linha que você colocou aí:

 

$stmt = "SELECT * FROM PROPRIETARIO WHERE PROPRIETARIO.PRT_EMAIL = '". $login . "'";

O que você está selecionando? WHERE..... O QUE????

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi,eu comparo onde o nome (login) é igual ao login informado pelo usuario :) Pra iniciar a sessao nao basta por session_start() no começo da pagina??? :( beijosGi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, não, session_start você coloca assim:session_start(); $_SESSION["id_usuario"] = addslashes($row["PRT_CODIGO"]);$_SESSION["nome_usuario"] = addslashes($row["PRT_NOME"]);Tira do início e coloca antes de declarar as superglobais de sessão.E coloque a consulta assim:$stmt = "SELECT * FROM PROPRIETARIO WHERE login = '$login';

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz o que você falou

olha o erro que deu, ao chamar o index2.php,onde quero mostrar o nome da pessoa

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\arquivos de programas\apache group\apache\htdocs\index2.php:5) in c:\arquivos de programas\apache group\apache\htdocs\index2.php on line 26

?? buuuuua

http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

obrigada por ajudar

beijos

gi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o código da sua index2.php? Provavelmente na primeira linha você não colocou a validação das sessões, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na index2.php eu coloco na primeira linhasession_start() e depois onde quero colocar o nome do usuario eu coloco:$_SESSION["nome_usuario"]agora ta dando o erro:Notice: Undefined index: id_usuario in c:\arquivos de programas\apache group\apache\htdocs\index2.php on line 27a linha 27 é onde eu coloco echo $_SESSION["nome_usuario"]beijosbrigadinhaGi

Compartilhar este post


Link para o post
Compartilhar em outros sites

<? session_start();?>

<HTML>

<HEAD>

<TITLE>Biblioteca Online</TITLE>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<script language="JavaScript" type="text/JavaScript">

<!--

function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//-->

</script>

</HEAD>

<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 >

 

<!-- ImageReady Slices (14.psd) -->

<div id="Layer1" style="position:absolute; left:8px; top:247px; width:365px; height:87px; z-index:1">

 

</div>

<div id="Layer2" style="position:absolute; left:576px; top:113px; width:183px; height:68px; z-index:2">

<div align="center"><font size="2" face="Tahoma"><strong>Bem Vindo!<br>

<?

echo $_SESSION["id_usuario"];

 

?>

</strong></font></div>

</div>

coloquei so a parte que uso o php :)

beijos

Gi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está faltando você declarar as variáveis de sessão. Geralmente isso é feito em um arquivo separado (valida_sessao.php).Aí você completa com o seguinte:<?phpsession_start();if(isset($_SESSION['login'])) { $login = $_SESSION['login']; } if(isset($_SESSION['senha'])) { $senha = $_SESSION['senha']; } else { echo "<b>Os campos de Login e Senha não foram preenchidos corretamente, favor conferir.</b>"; exit; }Neste caso, se a pessoa logou, você passa o valor das variáveis de sessão para as variáveis que você utilizará no seu script.Se ela não logou, virá uma mensagem para ela e terminará o script (exit:)Esse arquivo "valida_sessao.php" você coloca no início de todas as páginas "internas" do seu site.Tenta lá e depois posta o resultado. B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi..entao, eu havia feito esse arquivo ja,o meu ta assim<?php// Inicia sessõessession_start();// Verifica se existe os dados da sessão de loginif(!isset($_SESSION["nome_usuario"]) || !isset($_SESSION["id_usuario"])){ // Aviso de Área Restrita header("Location: livros.htm"); exit;}?>mas mesmo estando certo login e senha ele nao me redireciona pra index2.php e sim pra livros.htm,parecendo que está errado o login e senha. Dai se nao uso esse arqquivo ele entra na index2.php mas nao mostra a varivel de sessao que te passei no outro post :( deu pra entender +/-? eu vou colocar o seu codigo pra ver o que q da :) beijosGi

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi..entao, eu havia feito esse arquivo ja,o meu ta assim

 

<?php

session_start(); //Retire o comentário. Entre <?php e session_start(); nào pode haver nada, nem espaço vazio.

 

 

// Verifica se existe os dados da sessão de login

//Inverte o if, coloca se estiver logado vai para o index2.php, senão(else), vai para livros.htm

if(!isset($_SESSION["nome_usuario"]) || !isset($_SESSION["id_usuario"]))

{

 

    // Aviso de Área Restrita

 

  header("Location: livros.htm");

    exit;

 

}

 

?>

 

Você tem dois index? um index.php e outro index2.php?

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi,onde eu configuro onde serao guardadas as variaveis de sessao no php.ini?vai que la ta lugar errado sei la.....e ainda nao funcionou :( Sim eu tenho dois index..um primeiro a pessoa se loga, e se for autorizada ela vai para o index 2 onde quero dar um echo no nome dela :( Beijos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que sei, as variáveis de sessão ficam na cache.Está faltando você declarar elas na sua validação:

<?phpsession_start();if(isset($_SESSION['nome_usuario'])){$nome_usuario = $_SESSION['nome_usuario]}if(isset($_SESSION['id_usuario'])){$id_usuario = $_SESSION['id_usuario']))}//Aqui você faz as verificações para saber se as variáveis passadas ($nome_usuario e $id_usuario) estão cadastradas em seu banco de dados.Aqui você não precisa colocar uma header pois este será um arquivo de validação, colocado no início de suas páginas "internas", para verificação se o usuário pode ou não acessá-las.Se o login estiver errado ou ele não estiver cadastrado, você coloca uma mensagem para ele logar ou se cadastrar e dá um "exit;" para sair do programa, com um link para ele retornar à pagina de login.?>

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.