Ir para conteúdo

Arquivado

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

deehhalves

Como fazer um session_start();

Recommended Posts

Minha página de login está tudo ok, ela vai até ao banco e verifica se existe tal login, se não existe retorna um erro para o usuário enfim. Porém, já tentei de - quase - todas as formas fazer com que: se existir o cadastro no banco de dados, ele inicia uma seção (session_start), o que realmente vai determinar se o usuario está logado. (Claro, depois tratar essa função bonitinha).

 

Resumo: Preciso aprender a fazer com que a session_start esteja realmente funcionando e que eu consiga "quebrar" essa session_start (session_destroy).

 

HTML - (cógido da página inteira)

 

<?php include 'conexao.php'; ?>


<?php 
if (!isset($_SESSION['email']) && (!isset($_SESSION['senha']))) {


echo "Não existe nenhuma seção aberta!";
}else{


echo "Já existe uma seção aberta!";


}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>.: Major arms :.</title>


<link href="style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/full-slider.css">
<link rel="stylesheet" type="text/css" href="css/owl.transitions.css">
<link rel="stylesheet" type="text/css" href="css/owl.theme.css">
<link rel="stylesheet" type="text/css" href="css/owl.carousel.css">
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://areaaperta.com/nicescroll/js/jquery.nicescroll.min.js"></script>
<script type="text/javascript">


$(document).ready(function() {
$(".username").focus(function() {
$(".user-icon").css("left","-48px");
});
$(".username").blur(function() {
$(".user-icon").css("left","0px");
});


$(".password").focus(function() {
$(".pass-icon").css("left","-48px");
});
$(".password").blur(function() {
$(".pass-icon").css("left","0px");
});
});




</script>
<script>
$(document).ready(function () {
$("html").niceScroll();
});
</script>
<script>
$(function() {
$('#wrapper').hide().fadeIn('slow');


});
</script>


<!--<--?php include ('topo_paginas.php');?> -->
</head>
<body style="background: url(img/bg_login.jpg) repeat;">
<div id="wrapper">
<div class="user-icon" style="margin-top: 22px;"></div>
<div class="pass-icon" style="margin-top: 25px;"></div>


<form name="login-form" class="login-form" enctype="multipart/form-data" method="post">
<div class="header">
<center><img src="img/logo.png" style="width: 110px; margin-left: 20px; margin-top: 20px;" ><center>
<h1>Faça seu login</h1>
<span>Preencha o formulário corretamente para acessar sua conta.</span>
</div>


<div class="content">
<input name="username"  required type="email" class="input username" placeholder="E-mail"  />
<input name="password"  required type="password"  maxlength="8" class="input password" placeholder="Senha"  />
<?php include 'login_valid.php'; ?>
</div>


<div class="footer">
  <input type="submit" name="logar" value="Logar" class="button" />
</div>
</form>
<input type="submit" href="registrar.php" onClick="window.location='registrar.php';" name="submit" value="Cadastre-se" class="registrar_pg_login" />
</div>
</body>
</html>

PHP

 

<?php 


if(isset($_REQUEST['logar'])) {


$email = $_REQUEST['username'];
$senha = $_REQUEST['password'];


$sql = "SELECT * FROM cadastro WHERE email = '$email' AND senha = '$senha' ";
$query = mysql_query($sql) or die(mysql_error());
$rows = mysql_num_rows($query);


if ($rows == 0) {
echo "<div class='alert alert-danger' role='alert'><strong>Ops!!</strong> Senha e/ou email inválido. <strong>Tente novamente.</strong></div>";
}else{


$_SESSION['email'] = $email;
$_SESSION['senha'] = $senha;


echo "<div class='alert alert-success' role='alert'><strong>Pronto!!</strong> Você já está logado!</div>";
//session_start();???
}
}


?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, amigo. Consegui dessa forma:

 

"Pagina php"

<?php 


if(isset($_REQUEST['logar'])) {




$email = $_REQUEST['username'];
$senha = $_REQUEST['password'];


$sql = "SELECT * FROM cadastro WHERE email = '$email' AND senha = '$senha' ";
$query = mysql_query($sql) or die(mysql_error());
$rows = mysql_num_rows($query);


if ($rows == 0) {


echo "<div class='alert alert-danger' role='alert'><strong>Ops!!</strong> Senha e/ou email inválido. <strong>Tente novamente.</strong></div>";
}else{


$_SESSION['email'] = $email;
$_SESSION['senha'] = $senha;


echo "<div class='alert alert-success' role='alert'><strong>Pronto!!</strong> Você já está logado!</div>";
}
}


?>

"Página HTML"

<?php 
session_start();
if (!isset($_SESSION['email']) && (!isset($_SESSION['senha']))) {


echo "Não existe nenhuma seção aberta!";
}else{


echo "Já existe uma seção aberta!<br>";


$sql = "select * from cadastro";
mysql_query($sql);
$consulta = mysql_query($sql)or die(mysql_error());
while($sql_result = mysql_fetch_assoc($consulta)){
echo "<td>".$sql_result['id_cliente']."</td><br>";
echo "<td>".$sql_result['nome']."</td><br>";
echo "<td>".$sql_result['email']."</td><br>";
echo "<td>".$sql_result['senha']."</td><br>";
echo "<td>".$sql_result['tipo']."</td><br>";


}




}


?>

Porém, se eu fizer 2 logins ele aceita e ali na query que ele faz na variavel $consulta ele mostra os dois logins (o que não deveria);

Qual a verificação que devo fazer?

(Na verdade ele pega todos os cadastros que estão no banco mesmo eu logando somente com 1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você usou a consulta select * from cadastro, sem filtragem alguma. Filtre pelo usuário logado, usando WHERE:

 

 

select * from cadastro where id = <id_do_usuario_logado>;

 

pode filtrar pelo email também, ou qualquer outro identificador único

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se minha lógica está certa (pelo que testei aqui, não) mas: se eu fizer um select pelo id do cliente por exemplo:

$sql = "select nome, email  from cadastro where id = 1";
mysql_query($sql);
$consulta = mysql_query($sql)or die(mysql_error());
while($sql_result = mysql_fetch_assoc($consulta)){
echo "<td>".$sql_result['id_cliente']."</td><br>";
echo "<td>".$sql_result['nome']."</td><br>";
echo "<td>".$sql_result['email']."</td><br>";
echo "<td>".$sql_result['senha']."</td><br>";
echo "<td>".$sql_result['tipo']."</td><br>";
}

Mesmo não logando com o usuario com id = 1, ele vai listar o nome e email do usuario que tem o id = 1.

Conseguiu entender? rsrs

Eu preciso do nome e do email do usuario que tiver com sua "(isset($_SESSION = true"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo não logando com o usuario com id = 1, ele vai listar o nome e email do usuario que tem o id = 1.

Conseguiu entender? rsrs

Eu preciso do nome e do email do usuario que tiver com sua "(isset($_SESSION = true"

Para isso, use o dado que você salvou na session.

Hoje você já está salvando o email. Use esse dado, como eu sugeri no meu post anterior

Você pode salvar o ID, se preferir

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, antes de realmente "fechar" o tópico uma última dúvida: Ele só me retorna os valores do usuário logado quando eu recarrego a página.

Ex: Faço o login > ele me retorna a mensagem de que deu certo

echo "<div class='alert alert-success' role='alert'><strong>Pronto!!</strong> Você já está logado!</div>";

> mas só depois que atualizo a página ele abre a sessão e retorna com os valores que pedi que retornasse

$sql = "SELECT nome FROM cadastro WHERE id_cliente = 1";
mysql_query($sql);
$consulta = mysql_query($sql)or die(mysql_error());
while($sql_result = mysql_fetch_assoc($consulta)){
echo "Seja bem vindo, ";
echo "<td>".$sql_result['nome']."</td><br>";


}

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.