Sistema de Login que Mostra o Nome do Usuário

4 respostas
nathanpc

Olá,
Estou começando com o PHP, tenho um servidor Apache e estou criando o meu site, sou um programador Java, mas não para Web, mas quando estava lendo este tutorial, eu fiz o sistema de login perfeito e quando o usuário logava ele redirecionava para á página principal: index.php que é a mesma onde está o form de login, pois eu o botei na minha sidebar do site, mas quando o usuário acaba de fazer o login e é redirecionado de volta para a index.php na área onde está o form de login continua como se não o tivesse feito, mas eu estava querendo que quando o usuário estivesse logado, onde era a form de login ficasse apenas o nome do usuário. Lembrando que eu não fiz nenhuma alteração nos códigos PHP, somente para onde o usuário é redirecionado.

Obrigado,
Nathan Paulino Campos

4 Respostas

Felagund

qualquer if em php resolve seu problema.

Basta vc definir uma $_SESSION contento o id do usuário logado, assim vc pode identificar com um isset e mostrar o form de login ou outra coisa qualquer.

[]'s

nathanpc

Olá Felagund,
Você poderia me responder como eu posso fazer isto, me pasando um código, ou onde é para eu alterar o meu, pois eu estou começando, então sou muito noob.

Obrigado,
Nathan Paulino Campos

Felagund

Quem está começando não é noob, é newbie, noob é um newbie que se acha :wink:

Dificil postar código sem ver o que vc esta fazendo.
Mas vamos lá

<?
//Aqui é depois do usuário fazer login OK
//Vc pesquisa no banco o usuário e senha, e retorna o id da tabela, ou o login do usuário sei lá
$_SESSION['user'] = $id;

//na pagina de login
if(isset($_SESSION['user')){
?>
 <!-- Aqui vem qualquer outra bagaça que vc queira mostrar para o usuário autenticado -->
<?
}else{
?>
  <!-- Aqui vem o formulário de login -->
<?
}
?>
nathanpc

Olá Felagund,
Não está dando certo, então estou postando agora os códigos já com as alterações que você me mandou:

index.php

<html>
<head>

</head>
<body>
<H1>Login</H1>
<? include ("login.php");
if(isset($_SESSION['user'])){
echo "<H1>Logado Como: '$nome'</H1>";
} else {
?>
<form action="login.php" name="cadastro" method="post">
Nome: &lt;input type="text" name="nome"&gt;<br>
Senha: &lt;input type="text" name="senha"&gt;<br>
&lt;input type="submit" value="enviar"&gt;<br />

<a >Cadastre-se</a><br />
&lt;/form&gt;
&lt;? } ?&gt;
&lt;/body&gt;
&lt;/html&gt;

login.php

&lt;?
//conecta com o db
include ("conectar.php");
$nome= $_POST['nome'];
$senha = $_POST['senha'];
//faz a confirmação de nome e senha no db
$logar = mysql_query("SELECT * FROM login WHERE nome='$nome' AND senha='$senha'") or die("erro ao selecionar");
/*aqui depois de verificado redirecionamos a pagina secreta(caso nome e senha estarem corretos) ou senha
e apelido não conferem caso tais estiverem errados. Repare que  uma rotina para o valor inserido em senha não seja nulo. 
obs: Aonde esta escrito paginasecreta.php é aonde vc deve colocar a página para onde o script ira redirecionar*/
if (strlen($senha)&lt; 1)
echo '<p >Senha ou apelido não conferem<BR><a >tente denovo</a></p>';
elseif (mysql_num_rows($logar)&gt;0 ){
$_SESSION['user'] = $nome;
header("location:index.php");
} else {
echo '<p >Senha ou apelido não conferem<BR><a >tente denovo</a></p>';
}
?&gt;

conectar.php

&lt;?
$host = "localhost";
$user = "root";
$senha = "não esou postando a minha senha por segurança";
$dbname = "login_test";
//conecta ao banco de dados
mysql_connect($host, $user, $senha) or die("Não foi possível conectar-se com o banco de dados");
//seleciona o banco de dados
mysql_select_db($dbname)or die("Não foi possível conectar-se com o banco de dados");
?&gt;

O Que Está Errado?,
Nathan Paulino Campos

Criado 12 de junho de 2009
Ultima resposta 12 de jun. de 2009
Respostas 4
Participantes 2