Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Giullyanny

Erro spl

Recommended Posts

estou com problemas aqui em um código:

dentro da pasta "lib" eu tenho dois arquivos: login.php | conexao.php

Direto na raiz eu tenho dois arquivos: index.php | auth.php

 

Estou com problema em uma aplicação, e estou fazendo este teste pois esta acontecendo a mesma coisa.

 

Ele abre index.php e se não estiver logado ele é redirecionado para o auth.php(estes dois na raiz) que o usuário coloca usuario e senha.

 

O erro é que existem muitos redirecionamentos... eu não consegui entender o pq, alguma dica?

 

o arquivo login.php

<?php
session_start();
require_once('conexao.php');

class login {
	
	public function logar($user, $pass){
	
		$sql 	= "SELECT * FROM pessoas WHERE user = '$user' AND pass = '$pass' LIMIT 0,1";
		$result	= mysql_query($sql) or die(mysql_errno());
		$total 	= mysql_num_rows($result);
	
		if ($total == 1){
			$l = mysql_fetch_assoc($result);
			$_SESSION['id'] = $l['id'];
			$_SESSION['user'] = $l['user'];
			$_SESSION['pass'] = $l['pass'];
			
			return 'ok';
			
		} else {
			return 'erro';
		}
	}
	
	public function logoff(){
		session_destroy();
		return 'ok';
	}
}

o arquivo conexao.php

<?php
$host 	= 'localhost';
$bduser	= 'root';
$bdpass	= '1';

if (!($mysql_connect = @mysql_connect($host,$bduser,$bdpass))) echo "<h1>FALHA NA CONEXÃO</h1>CODE: <code>".mysql_errno()."</code>";
if (!mysql_select_db('nove_maio')) echo "<h1>FALHA NA CONEXÃO COM O BANCO</h1>CODE: <code>".mysql_errno()."</code>";

set_include_path("lib/".PATH_SEPARATOR."config/".PATH_SEPARATOR.get_include_path());

function my_autoloader($class) {
    include $class . '.php';
}

spl_autoload_register('my_autoloader');

arquivo index.php

<?php
session_start();
require_once 'lib/conexao.php';
?>
<!DOCTYPE html>
<html lang="pt_BR">

	<head>
		<meta charset="UTF-8" />
		<title>:: login ::</title>
        <?php
        if (!isset($_SESSION['id'])){
			header("Location: auth.php");
		}
		?>
	</head>

	<body>
		<p><?= @$_GET['nome']?></p>
		<form action="">
			<fieldset>
				<p><strong>Registro</strong>: <?=$_SESSION['id'] ?></p>
				<p><strong>Nome</strong>: <?=$_SESSION['user'] ?></p>
				<p><strong>Senha</strong>: <?=$_SESSION['pass'] ?></p>
			</fieldset>
		</form>
		<a href="auth.php?error=0">SAIR</a>
	</body>
</html>

e arquivo auth.php

<?php
require 'lib/conexao.php';


if (@$_GET['error'] == 0){
	$logar = new Login;
	if ($logar->logoff() == 'ok'){
		header('Location: auth.php');
	}
}

if (isset($_POST['enviar'])){
	$logar = new Login;
	if($logar->logar($_POST['user'],$_POST['pass']) == 'ok'){
		header('Location: index.php');
	} else {
		header('Location: auth.php?error=0');
	}
}
?>
<!DOCTYPE html>
<html lang="pt_BR">

	<head>
		<meta charset="UTF-8" />
		<title>:: login ::</title>
	</head>

	<body>
		<form action="" method="post">
			<fieldset>
				<legend>Logar Usuário</legend>
				<input type="text" name="user" />
				<input type="text" name="pass" />
				<input type="submit" name="enviar" value="ENVIAR" />
                <?= (isset($_GET['error'])? "<p style=\"color:red\"><sup>Login / Senha incorreto! Tente novamente...</sup></p>" : '') ?>
			</fieldset>
		</form>
	</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estes redirecionamentos do arquivo auth.php para auth.php são desnecessários, como na action do form está vazia, vai mandar sempre para mesma página.

 

Separe este autoload do arquivo de conexão, veja que dentro da classe você chama a autoload novamente.

<?php
session_start();
require_once('conexao.php');

class login {
Crie um arquivo de inicialização e faça o require separadamente, faça estas correções e teste.

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.