Ir para conteúdo

POWERED BY:

Arquivado

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

Rogerio kleinkauf

[Resolvido] Apanhando do $_SESSION

Recommended Posts

Bom pessoal, estou tentando usar $_SESSION mas até agora não obtive exito.

É o seguinte esse código corresponde á autenticação assim como para restrição das paginas, só que a variavel $_SESSION['autorizar'] não salva de jeito nenhum

Se algum puder me ajudar, ficarei grato, Obrigado!

 

Segue aqui o código:

 

<?php
require("../connection/database.php");

	if(isset($_POST[logout])) {
		session_destroy();
		exit();
	}
	
	elseif(isset($_SESSION['autorizar'])){
		echo "OK";
	}
	
	elseif(isset($_POST['usuario']) && isset($_POST['senha'])){
		
		$sql = "SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND senha='".md5($_POST[senha])."'";
		$query = mysql_query($sql);
		$row = mysql_num_rows($query); 
		
		if($row<1){ 
			echo "<script language='JavaScript'>window.location='index.php'</script>";
		} else {
			session_start();
			$_SESSION['autorizar'] = true;
			echo "<script language='JavaScript'>window.location='painel.php'</script>";
		}
	}
	else{
		echo "erro";
		echo $_SESSION['autorizar'];
		exit();
	}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para você puxar ou setar algo desse array você tem que chamar o método session_start antes.

Seu código tá feio pacas...e com vulnerabilidades.Reve isso ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou rever... isso dai é só pra testar, depois atualizo

Então mas eu chamei

session_start();

$_SESSION['autorizar'] = true;

 

também já mudei para a primeira linha do código e até agora nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

session_start();

 

require("../connection/database.php");

 

if(isset($_POST[logout])) {

session_destroy();

exit();

}

 

elseif(isset($_SESSION['autorizar'])){

echo "OK";

}

 

elseif(isset($_POST['usuario']) && isset($_POST['senha'])){

 

$sql = "SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND senha='".md5($_POST[senha])."'";

$query = mysql_query($sql);

$row = mysql_num_rows($query);

 

if($row<1){

echo "<script language='JavaScript'>window.location='index.php'</script>";

} else {

session_start();

$_SESSION['autorizar'] = true;

echo "<script language='JavaScript'>window.location='painel.php'</script>";

}

}

else{

echo "erro";

echo $_SESSION['autorizar'];

exit();

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Manda seu código refeito.

Sem erros de sintaxe...e bunitinho.

Aliás...liga o display_errors e seta error_reporting como a constante E_ALL que você verá alguns errinhos.

 

Ps: o código do molin ainda tem erros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

nada ainda :(

 

<?php
require("../connection/database.php");

error_reporting(E_ALL);

	if(isset($_POST[logout])) {
		session_destroy();
		echo "<script language='JavaScript'>window.location='index.php'</script>";
	}
	
	elseif(isset($_SESSION['autorizar'])){
	}
	
	elseif(isset($_POST['usuario']) && isset($_POST['senha'])){
		
		$sql = "SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND senha='".md5($_POST[senha])."'";
		$query = mysql_query($sql);
		$row = mysql_num_rows($query); 
		
		if(empty($row)){ 
			echo "<script language='JavaScript'>window.location='index.php'</script>";
		} else {
			session_start();
			$_SESSION['autorizar'] = true;
			echo "<script language='JavaScript'>window.location='painel.php'</script>";
		}
	}
	else{
		echo "<script language='JavaScript'>window.location='index.php'</script>";
		exit();
	}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, Agora deu certo ;D Obrigado pessoal

Eibon passei o Acunetix e não acusou nenhuma vulnerabilidade... se puder me indicar alguma ficarei grato.

 

segue o código:

<?php
require("../connection/database.php");
session_start();

	if(isset($_POST['logout'])) {
		session_destroy();
		echo "<script language='JavaScript'>window.location='index.php'</script>";
	}
	
	elseif(isset($_SESSION['autorizar'])){
	}
	
	elseif(isset($_POST['usuario']) && isset($_POST['senha'])){
		
		$sql = "SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND senha='".md5($_POST[senha])."'";
		$query = mysql_query($sql);
		$row = mysql_num_rows($query); 
		
		if(empty($row)){ 
			echo "<script language='JavaScript'>window.location='index.php'</script>";
		} else {
			$_SESSION['autorizar'] = true;
			echo "<script language='JavaScript'>window.location='painel.php'</script>";
		}
	}
	else{
		echo "<script language='JavaScript'>window.location='index.php'</script>";
		exit();
	}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

function formatData($data) { 
	$data = strip_tags($data);
	$data = trim($data);
	$data = get_magic_quotes_gpc() == 0 ? addslashes($data) : $data;
	$data = preg_replace("@(--|\#|\*|;)@s", "", $data);
	return $data;
}

 

Essa função serve pra proteger contra o manjado SQL Injection, senão é só meter ' or 1='1 no campo da senha e logar. E o pior é que vejo direto sites que ainda não se defendem contra isso. Usa essa função pro username e pro login que resolve tudo.

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.