Ir para conteúdo

POWERED BY:

Arquivado

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

LucasCairesF

Onde está o erro?

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;

?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>";
}
 
}
?>

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.