KS_Scream 1 Denunciar post Postado Agosto 15, 2013 Boa noite, preciso logar um usuário e carregar seu nome na tela, porém, apesar de simples não estou conseguindo fazer, segue abaixo meu código do formulário de login: <?php require("conect.php"); $email = $_POST['_email']; $senha = $_POST['senha']; $sql = mysql_query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha'")or die(mysql_error()); $row = mysql_num_rows($sql); if ($row > 0) { session_start(); $_SESSION['email'] = $resultado['email']; $_SESSION['nome'] = $resultado['nome']; $_SESSION['imagem'] = $resultado['imagem']; header("Location: home.php"); } else { header("Location: login.php"); } ?> O problema é que não sei como imprimir as informações na tela home.php. Alguém pode me ajudar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 15, 2013 em home.php, você abre a sessão com [inline]session_start();[/inline] e resgata os valores assim como você fez para salvá-los home.php <?php session_start(); echo "Olá, {$_SESSION['nome']}, seja bem vindo ao meu incrível website!"; Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 em home.php, você abre a sessão com [inline]session_start();[/inline] e resgata os valores assim como você fez para salvá-los home.php <?php session_start(); echo "Olá, {$_SESSION['nome']}, seja bem vindo ao meu incrível website!"; Obrigado pela ajuda amigo, mas pra mim ainda deu o erro: Notice: Undefined index: nome in D:\Program Files\EasyPHP-12.1\www\Teste\home.php on line 7 Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Agosto 16, 2013 você faz um login corretamente e cai aí? Limpe os cookies do navegador. Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 você faz um login corretamente e cai aí? Limpe os cookies do navegador. Exatamente, já tentei limpar cookies, cache e testei em navegadores diferentes, sempre da isso. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 16, 2013 Em todas as páginas que você trabalhar com sessões, é obrigatório que você use o session_start(); Adicione o session_start(); antes de qualquer saída HTML em todas as páginas que você trabalhar com sessões. Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 Em todas as páginas que você trabalhar com sessões, é obrigatório que você use o session_start(); Adicione o session_start(); antes de qualquer saída HTML em todas as páginas que você trabalhar com sessões. Boa noite Wanderson, estou fazendo assim: <?php require("conect.php"); session_start(); echo "Olá, {$_SESSION['nome']}, seja bem vindo ao meu incrível website!"; ?> E ainda assim ocorre o erro. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 16, 2013 Faça o teste usando um navegador diferente, pode ser algo relacionado com o cache... Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 Faça o teste usando um navegador diferente, pode ser algo relacionado com o cache... Já tentei no Chrome, IE, Opera e Safari, além disso limpei todos os dados, infelizmente o erro persiste. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 16, 2013 Nossa mano, por favor poste o código dessas páginas que você está usando atualmente. Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 Nossa mano, por favor poste o código dessas páginas que você está usando atualmente. valida.php <?php require("conect.php"); $email = $_POST['_email']; $senha = $_POST['senha']; $sql = mysql_query("SELECT * FROM usuarios WHERE email='$email' AND usr_senha='$senha'")or die(mysql_error()); $row = mysql_num_rows($sql); if ($row > 0) { session_start(); $_SESSION['email'] = $resultado['email']; //$_SESSION['senha'] = $resultado['senha']; $_SESSION['nome'] = $resultado['nome']; $_SESSION['imagem'] = $resultado['imagem']; header("Location: home.php"); } else { header("Location: login.php"); } ?> E aqui a home.php <?php require("conect.php"); session_start(); echo "Olá, {$_SESSION['nome']}, seja bem vindo ao meu incrível website!"; ?> Sera que estou fazendo algo errado na valida.php? Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 16, 2013 Faça o seguinte: echo "<pre>"; print_r($_SESSION); echo "</pre>"; exit(); No inicio da home.php e posta o resultado. Tá meio estranho isso, de qualquer forma deixe o session_start(); na primeira linha do arquivo. Já sei, talvez a sua validação no banco de dados não esteja funcionando, ai ele dá esse erro, pois a sessão não foi definida. Faça: <?php session_start(); require("conect.php"); $email = $_POST['_email']; $senha = $_POST['senha']; $sql = mysql_query("SELECT * FROM usuarios WHERE email='$email' AND usr_senha='$senha'")or die(mysql_error()); $row = mysql_num_rows($sql); if ($row > 0) { $_SESSION['email'] = $resultado['email']; //$_SESSION['senha'] = $resultado['senha']; $_SESSION['nome'] = $resultado['nome']; $_SESSION['imagem'] = $resultado['imagem']; header("Location: home.php"); } else { $_SESSION['nome'] = 'Sessão não definida, erro no login'; header("Location: login.php"); } ?> $email = $_POST['_email']; Tem certeza que no atributo name do campo E-mail você definiu como "_email" mesmo? Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 Faça o seguinte: echo "<pre>"; print_r($_SESSION); echo "</pre>"; exit(); No inicio da home.php e posta o resultado. Tá meio estranho isso, de qualquer forma deixe o session_start(); na primeira linha do arquivo. Já sei, talvez a sua validação no banco de dados não esteja funcionando, ai ele dá esse erro, pois a sessão não foi definida. Faça: <?php session_start(); require("conect.php"); $email = $_POST['_email']; $senha = $_POST['senha']; $sql = mysql_query("SELECT * FROM usuarios WHERE email='$email' AND usr_senha='$senha'")or die(mysql_error()); $row = mysql_num_rows($sql); if ($row > 0) { $_SESSION['email'] = $resultado['email']; //$_SESSION['senha'] = $resultado['senha']; $_SESSION['nome'] = $resultado['nome']; $_SESSION['imagem'] = $resultado['imagem']; header("Location: home.php"); } else { $_SESSION['nome'] = 'Sessão não definida, erro no login'; header("Location: login.php"); } ?> $email = $_POST['_email']; Tem certeza que no atributo name do campo E-mail você definiu como "_email" mesmo? A saida ficou: Array( [email] => teste@teste [senha] => 123 [nome] => [imagem] => ) O atributo é _email mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 16, 2013 Está faltando: $resultado = mysql_fetch_array($sql); Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Agosto 16, 2013 Substitui o: $row = mysql_num_rows($sql); por: $resultado = mysql_fetch_array($sql); e a saida foi a mesma, ele não recebe o que tem no banco. Tá feia a coisa pra mim hehe. Compartilhar este post Link para o post Compartilhar em outros sites
Wanderson Valerio 102 Denunciar post Postado Agosto 16, 2013 Não cara, adicione esse código abaixo de $sql... Compartilhar este post Link para o post Compartilhar em outros sites