Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou criando um simples painel para administrar meu site e até agora pouco estava funcionando perfeitamente!
Essa é o PHP pagina de login:
<?php
session_start();
include('php/conectar.php');
if($_POST["acao"] == "logar"){
$login = $_POST["usuario"];
$senha = $_POST["senha"];
$sql = "SELECT * FROM usuario WHERE usuario='$login' AND senha='$senha' ";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res)>0){
$row = mysql_fetch_array($res);
$_SESSION["usuario"] = $login;
$s= "UPDATE usuario SET status='On'";
$rs = mysql_query($s) or die(mysql_error());
if($rs){
echo"<script>location.href='dentro.php'</script>";
}
}else{
echo "<script>alert('Parece que houve um erro. Tente Novamente!')</script>";
}
$row = mysql_fetch_array($res);
}
?>
Aqui está o PHP da pagina que deveeria carregar:
<?
session_start();
include("php/conectar.php");
include("php/conecta2.php");
if($_GET["act"]=="logout"){
session_destroy();
echo"<script>location.href='index.php'</script>";
exit;
}
?>
E aqui está o conteúdo da pagina conecta2.php
<?
if($_SESSION["usuario"]){
$sql = "SELECT * FROM usuario WHERE usuario='".$_SESSION["usuario"]."' ";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res)<=0){
echo "<script>location.href='index.php'</script> ";
}
}else{
echo "<script>location.href='index.php'</script>";
}
?>
Na hora de logar funciona de boa, mas logo quando é direcionado para a pagina dentro.php que seria a parte interna do painel ele é redirecionado para a pagina index.php . Alguém poderia me ajudar?
Não retorna erro! Me direciona para a pagina dentro.php e quando entro na pagina dentro.php logo retorna pra index como se a sessão não tivesse sido salva!
Tente assim:
<?
session_start();
include("php/conectar.php");
include("php/conecta2.php");
if($_GET["act"]=="logout"){
}
session_destroy();
echo"<script>location.href='index.php'</script>";
exit;
?>Você tem que aprender a depurar seu código. O primeiro passo a ser feito, é checar se o POST está vindo com os dados:
var_dump($_POST);
Obtendo o resultado positivo de sua análise, é hora de depurar o próximo passo, esse trecho:
$sql = "SELECT * FROM usuario WHERE usuario='$login' AND senha='$senha' ";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res)>0){
Verifique se sua query teve êxito, é preciso "checar" se ela está passando deste ponto. Abaixo do IF, coloque um print na sessão usuario e um exit(); para que você possa ver se ela está sendo preenchida, etc. Em fim, é preciso depurar o código, fazer um DEBUG para que você encontre facilmente a falha.Sempre declaro logo no inicio do script o seguinte:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
Assim tudo que o parser considerar como erro será exibido.
Mudei meu código da página de login e funcionou! Desculpem o incômodo.
<?php
include('php/conectar.php');
if($_POST["acao"] == "logar"){
$login = $_POST["usuario"];
$senha = $_POST["senha"];
$sql_logar = "SELECT * FROM usuario WHERE usuario = '$login' && senha = '$senha'";
$exe_logar = mysql_query($sql_logar) or die (mysql_error());
$fet_logar = mysql_fetch_assoc($exe_logar);
$num_logar = mysql_num_rows($exe_logar);
if ($num_logar == 0){
echo "<script>history.back(alert('Ocorreu um erro. Tente novamente!'))</script>";
} else{
session_start();
$_SESSION['usuario'] = $login;
$_SESSION['senha'] = $senha;
echo"<script>location.href='dentro.php'</script>";
}
}
?>
Quando você realiza o login, qual é o erro que dá?