Jump to content


Photo

Problemas Com Validação De Sessão


  • Faça o login para participar
7 replies to this topic

#1 idosreisjunior

idosreisjunior

    Turista

  • Usuários
  • 55 posts
  • Sexo:Não informado

Posted 11/02/2005, 09:18

alguém sabe como resilver este problemas? segue abaixo o código!
esta dando o seguinte erro!


Warning: Cannot send session cache limiter - headers already sent (output started at /var/www/html/portalf/portalf/admsis.php:2) in /var/www/html/portalf/verifica_sessao.php on line 2
você não efetuou Login!


login.php
[quote]
<?php
  ob_start();
include "_con.php";
include "_funcoes.php";

$sql = "SELECT codigo, apelido,senha,admsis FROM usuarios ";
$sql = $sql . "WHERE apelido = '" . strtoupper($_POST['txtApelido']) . "' ";
$sql = $sql . "AND senha = '" . Cript($_POST['txtSenha']) . "'";

$result = pg_query($sql) or die ("Query inv�ida: " . pg_error());

if (pg_num_rows($result) == 0) {
  echo "Usu�io " . $_POST['txtApelido'] . " N� validado!";
}else{
  $consulta = pg_fetch_array($result);
  if ($consulta['admsis'] == 1 ) {
          //inicializa sessão
  session_start();
  $_SESSION['nome_usuario'] = $_POST['txtApelido'];
  $_SESSION['senha_usuario'] = $_POST['txtSenha'];
   
        header("location: portalf/admsis.php");
  }else{
   
          header("location: portalf/ususis.php");
  }
}

      pg_close($con) or die ("Query inv�ida: " . pg_error());
  ob_end_flush();
  ob_end_clean();
?>

[/quote]

verifica_sessão.php
[quote]

<?php
//inicializa sessão
session_start();
if(isSet($_SESSION['nome_usuario']))
  $nome_usuario = $_SESSION["nome_usuario"];

if(isSet($_SESSION['senha_usuario']))
  $senha_usuario = $_SESSION['senha_usuario'];

if(!(empty($nome_usuario) or empty($senha_usuario)))
{
  include("../_con.php");
 
  $sql ="SELECT * FROM usuarios WHERE apelido='$nome_usuario'";
  $resultado = pg_query($sql);
  if(pg_num_rows($resultado)==1)
  {
  if($senha_usuario != pg_result($resultado,0,"senha"))
  {
    unset ($_SESSION['nome_usuario']);
    unset ($_SESSION['senha_usuario']);
    echo "você não efetuou o login!";
    exit;
    }
  }
  else
      {
      unset ($_SESSION['nome_usuario']);
      unset ($_SESSION['senha_usuario']);
      echo "você efetuou o login!";
      exit;
      }
        }
  else
      {
      echo "você não efetuou Login!";
      exit;
      }
      pg_close($con);
?>


[/quote][quote][/quote][QUOTE]

#2 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 11/02/2005, 09:33

em todas as paginas tem que ter session_start() e também nao adianta colocar ob_start() se antes do <?php tem algum espaço em branco, linha ou HTML. verifica isso, só pode ser algum espaço em branco antes do <?php

#3 Web Developer

Web Developer

    12 Horas

  • Usuários
  • 283 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre - RS
  • Interesses:Desenvolvimento Web.

Posted 11/02/2005, 09:47

É verdade, tem que ter essa função no começo de qualquer script.

<?php
session_start();
?>

Outros códigos vao aqui!

Edição feita por: Web Developer, 11/02/2005, 09:50.

PHP não é coisa pra muleque!

#4 lynx

lynx

    Turista

  • Usuários
  • 29 posts
  • Sexo:Não informado

Posted 11/02/2005, 13:32

aproveitando o topico, nem é segura armazenar uma senha em sessão é? tipo e se eu encriptar pra md5?

#5 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 11/02/2005, 13:55

sessao é seguro, pois os arquivos de sessao ficam no server, fora da arvore web.

#6 Web Developer

Web Developer

    12 Horas

  • Usuários
  • 283 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre - RS
  • Interesses:Desenvolvimento Web.

Posted 11/02/2005, 14:31

Encriptar em md5() fará com que você não tenha mais como resgatar a palavra original, se você quiser passar por parâmetro GET tudo bem, masnão grave no banco formatado ;)
PHP não é coisa pra muleque!

#7 lynx

lynx

    Turista

  • Usuários
  • 29 posts
  • Sexo:Não informado

Posted 11/02/2005, 15:14

ah sim, é só a senha que eu queria, porque elas ficam encriptadas no banco de dados, então eu não vo precisa recupera elas memo, hehe
ty galera

#8 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 11/02/2005, 15:17

se vc ciptrografa com base64_encode() vc pode desicptrografar com base64_decode()


mais nem precisa SESSION e 100% segura (y) fica no server...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq