Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fui tentar logar pelo celular, depois tentei pelo navegador firefox, explorer e NADA... nao cria a minha sessao, após o submit da refresh na página e como nao tem nenhuma sessao ele mostra o formulario de login de novo... e assim fica, mas no navegador Chrome funciona perfeitamente!!
alguém ja passou por esse problema?
Não faz sentido, uma vez que sistemas de login (teóricamente) devem usar só linguagens server-side.
mas a session é no browser
Não faz sentido, uma vez que sistemas de login (teóricamente) devem usar só linguagens server-side.
@Richardsoncsc Verdade, bom apontamento. As sessões dependem de Cookies que são gerados na máquina.
Vamos lá:
<?php
header('Content-Type: text/html; charset=UTF-8');
session_start();
if($_SESSION){
include($_SERVER['DOCUMENT_ROOT']."/panel.php");
}
else{
header('Content-Type: text/html; charset=UTF-8');
echo "
<html>
<head>
<meta charset='utf-8'>
<link href='[http://fonts.googleapis.com/css?family=Raleway:500,400,300'](http://fonts.googleapis.com/css?family=Raleway:500,400,300) rel='stylesheet' type='text/css'/>
<link rel='stylesheet' type='' href='css/style.css'/>
<title> Accedi </title>
</head>
<body>
<div id='idmensagem' class='mensagem' style='display:none'>
";
if(isset($_POST['enviar'])) {
$emailnome = $_POST['email'];
$senha = $_POST['senha'];
$pdo = new PDO("mysql:host=000000;dbname=00000","00000","00000");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql = $pdo->prepare("SELECT * FROM usuarios WHERE (email='$emailnome' or nome='$emailnome') AND senha='$senha'");
$sql->execute();
$num = $sql->rowCount();
if($num >0) {
$result = $sql->fetch(PDO::FETCH_OBJ);
echo "Conesso";
echo "<script>document.getElementById(\"idmensagem\").style.display = \"block\"</script>";
$sql->execute();
$_SESSION['nome'] = $result->nome;
echo "<meta http-equiv='Refresh' content='1'; URL='/'>";
} else {
echo"Email/Nome o Password non corretta!";
echo "<script>document.getElementById(\"idmensagem\").style.display = \"block\"</script>";
echo "<script>document.getElementById(\"idmensagem\").style.background = \"#B53A3C\"</script>";
}
}
echo "</div>";
echo "
<div id='login'>
<div class='message'>
</div>
<form action='' method='post'>
<div class='icons'>
<img src ='/image/user.png'/>
</div>
<input id='email' class='txt bradius' type='text' name='email' placeholder='Nome o Email'>
<div class='icons'>
<img class='icons' src='/image/password.png'/>
</div>
<input id='senha' class='txt bradius' type='password' name='senha' placeholder='Password'>
<input type='submit' class='sb bradius' name='enviar' value='Accedi'/>
</form>
</div>
</div>
</body>
</html>
";
}
?>
o código funciona perfeitamente no chrome... em mobile ou outro navegador nao cria a sessão e como já disse, exibe novamente o formulário.
ao mesmo tempo que funciona só no Chrome, percebi que agora pouco parou de logar tbm no chrome, ou seja.... sem alterar nada onde funcionava almenos no chrome do nada comçou aprensentar o mesmo erro dos demais navegadores
Problema ta no meu código ou no servidor?
Coloca Session_start na primeira linha.
Coloca Session_start na primeira linha.
Coloquei o session start em todo lugar como teste e NADA. como ja disse, recebo a mensagem de confirmacao pois os dados conferem com os do banco de dados mas nao cria a sessao.
primeira vez que vejo isso, provavelmente é cashe de seu chrome que parece ta funcionando, deixa o codigo ai.