Jump to content


Photo

Gravando Dados De Uma Session No Bd


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

#1 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 11:52

Bá eu tou usando um script de login que baixei de um tutorial so que queria adaptar essa função nele de poder gravar o usuario que está logado no bd poís com a variavel $_SESSION['UsuarioNome']; quando uso o echo ele acaba dizendo o nome mais na hora de gravar estou tentando $sql = "INSERT INTO usuario VALUES ('$_SESSION[UsuarioNome]')"; e não estou obtendo sucesso! abaixo vou deixar os dois codigos o do restrito e do validação!

Restrito
<?php 
$conexao = mysql_connect("host", "username", "password")
or die ("Erro na conexão ao banco de dados.");
$db = mysql_select_db("database")
or die ("Erro ao selecionar a base de dados.");
if (!isset($_SESSION)) session_start();
if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario)) {
session_destroy();
$sql = "INSERT INTO usuario VALUES ('$_SESSION[UsuarioNome]')";
$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");
}
?>
<?php echo $_SESSION['UsuarioNome']; ?>
Validação
<?php

// Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
	header("Location: index.php"); exit;
}

// Tenta se conectar ao servidor MySQL
mysql_connect('host', 'username', 'password') or trigger_error(mysql_error());
// Tenta se conectar a um banco de dados MySQL
mysql_select_db('database') or trigger_error(mysql_error());

$usuario = mysql_real_escape_string($_POST['usuario']);
$senha = mysql_real_escape_string($_POST['senha']);

// Validação do usuário/senha digitados
$sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";
$query = mysql_query($sql);
if (mysql_num_rows($query) != 1) {
	// Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
	echo "Login inválido!"; exit;
} else {
	// Salva os dados encontados na variável $resultado
	$resultado = mysql_fetch_assoc($query);

	// Se a sessão não existir, inicia uma
	if (!isset($_SESSION)) session_start();

	// Salva os dados encontrados na sessão
	$_SESSION['UsuarioID'] = $resultado['id'];
	$_SESSION['UsuarioNome'] = $resultado['nome'];
	$_SESSION['UsuarioNivel'] = $resultado['nivel'];
    $usuario = $_SESSION['UsuarioNome'];
	// Redireciona o visitante
	header("Location: restrito.php"); exit;
}

?>
OBS: Sei que a parte do restrito pode conter erro!

Edição feita por: Édipo Costa Rebouças, 04/06/2010, 13:02.


#2 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 11:57

Buenos!

Ele chega a registrar algo no BD?

Tenta assim:


$sql = "INSERT INTO usuario ('nome') VALUES ('".$_SESSION[UsuarioNome]."')";


[]´s
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#3 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 12:27

bah nao chega amigo! além disso ja tentei dessa forma!

#4 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 12:41

Tenta da um echo $sql e lê a query...

Manda a query aí, pra gente ver...

Copia a Query e executa no phpmyadmin...

[]´s
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#5 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 13:12

Eu fiz como vc disse <?php echo $sql; ?> e acabou não me voltando nada!

#6 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 14:14

Oops...

Comenta essa linha:


header("Location: restrito.php"); exit;


[]´s
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#7 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 14:24

ba mano o navegador retornou assim!

Redirecionamento incorreto
O Firefox detectou que o pedido para este endereço nunca será concluído devido à forma que o servidor o está redirecionando.
* Este problema algumas vezes pode ser causado pela desativação ou bloqueio de cookies.


Corrigi tinha adicionado numa linha errada porém nao retornou nada! ta assim o codigo me corrija se errei!
$sql = "INSERT INTO usuario VALUES ('$_SESSION[UsuarioNome]')";
$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");
header("Location: restrito.php"); exit;
}
?>
<?php echo $sql; ?>

Edição feita por: Guilherme Jucoski Fernandes, 04/06/2010, 14:29.


#8 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 14:28

Eita...

Tenta no IE...

[]´s
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#9 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 14:39

vish! nao retornando nada nao! =/

#10 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 14:49

Viiiiiixi...

Peraí...

Apaga td do Restrito.php e joga isso aqui:


<?php 
    
    $conexao = mysql_connect("host", "username", "password")or die("Erro na conexão ao banco de dados.");
    $db = mysql_select_db("database")or die("Erro ao selecionar a base de dados.");
    if(!isset($_SESSION)){
        session_start();
    }
    if(!isset($_SESSION['UsuarioID'])OR($_SESSION['UsuarioNivel'] < $nivel_necessario)){
        session_destroy();
        $sql = "INSERT INTO usuario ('nome') VALUES ('".$_SESSION[UsuarioNome]."')";
        echo $sql;
        //$sql = mysql_query($sql)or die("Houve erro na gravação dos dados.");
    }

?>


E executa o Restrito.php

[]´s
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#11 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 17:01

bah continua sem funcionar! tentei tirar até a ordem ali da coluna e do mesmo jeito não!

#12 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 18:01

Nossa, cara...

Mas fica td branco?
Não dá nenhuma mensagem de erro?
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#13 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 18:10

isso tudo branco! http://dbbrasil.net/novosite/admin/ tenta loga ai usuario: guilherme senha: jucoski

#14 Boxer

Boxer

    Ativo

  • Usuários
  • 304 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/06/2010, 18:21

Verdade....

Tenta fazer o seguinte...

Esse será o novo restrito.php:


<?php         
    
    $conexao = mysql_connect("host", "username", "password")or die("Erro na conexão ao banco de dados.");    
    $db = mysql_select_db("database")or die("Erro ao selecionar a base de dados.");    
    if(!isset($_SESSION)){
        session_start();    
    }    
    if(!isset($_SESSION['UsuarioID'])OR($_SESSION['UsuarioNivel'] < $nivel_necessario)){
        session_destroy();
        $sql = "INSERT INTO usuario ('nome') VALUES ('".$_SESSION[UsuarioNome]."')";
        $sql = mysql_query($sql)or die("Houve erro na gravação dos dados.");    
    }

    echo "usuId: " . $_SESSION['UsuarioID'] . "   usuNivel: " . $_SESSION['UsuarioNivel'] . "  nivelNecessario: " . $nivel_necessario;
?>



Joga lá e vamos ver o q ele mostra...

[]´s
"O único lugar, no mundo, onde o sucesso vem antes do trabalho, é no dicionário"

#15 Guilherme Jucoski Fernandes

Guilherme Jucoski Fernandes

    Normal

  • Usuários
  • 64 posts
  • Sexo:Masculino

Posted 04/06/2010, 19:15

Bom agora retornou isso:

usuId: 1 usuNivel: 2 nivelNecessario:






1 user(s) are reading this topic

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

IPB Skin By Virteq