PHP - No puedo iniciar sesion

 
Vista:

No puedo iniciar sesion

Publicado por giuli (74 intervenciones) el 26/11/2018 20:25:08
Trabajo con MVC y puse una condicion en el llamado a la hoja de rutas, donde si el usuario no esta en la sesion llama al login, es decir no se puede entrar a ningun controlador sin estar logueado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
require_once ($_SERVER['DOCUMENT_ROOT'].'/gestionweb/routes.php');
require_once('routes.php');
 
if (isset($_SESSION['usuario'])){
    require_once ($_SERVER['DOCUMENT_ROOT'].'/gestionweb/views/template.php');
if (isset($_REQUEST['id'])){
    $id=$_REQUEST['id'];
 
}else{
$id=0;}
 
	if (isset($_GET['controller'])&&isset($_GET['action'])) {
		$controller=$_GET['controller'];
		$action=$_GET['action'];
 
        call($controller,$action,$id);
	}
}else{
    echo "no existe";
    call("login","index",0);
}
?>

De la seguridad me voy a encargar despues,quiero que me funcione la sesion. El caso es que siempre redirige al login:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
require_once ("C:\\xampp\htdocs\gestionweb\includes\claseConexion.php");
 
class Login{
  private $estado;
  private $idp;
 
public function __construct(){
 
}
 
public function User($usuario,$pass)
{
	try
	{
            $conexion = Conexion::singleton_conexion();
 
		$stm=$conexion->prepare("SELECT * FROM despensa.usuarios WHERE nombre='".$usuario."' AND pass='".$pass."';");
 
              $stm->execute();
           $array=$stm->fetchAll(PDO::FETCH_ASSOC);
 
           if ($array>0){
                foreach ($array as $n){
 
                session_start();
            $_SESSION['usuario']=$n['nombre'];
            $_SESSION['idlog']=$n['iduser'];
                }
 
           }
		return $array;
 
 
		}
		catch(Exception $e)
		{
			die($e->getMessage());
		}
	}
 
}
 
?>



Trabajo con MVC y puse una condicion en el llamado a la hoja de rutas, donde si el usuario no esta en la sesion llama al login, es decir no se puede entrar a ningun controlador sin estar logueado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
require_once ($_SERVER['DOCUMENT_ROOT'].'/gestionweb/routes.php');
require_once('routes.php');
 
if (isset($_SESSION['usuario'])){
    require_once ($_SERVER['DOCUMENT_ROOT'].'/gestionweb/views/template.php');
if (isset($_REQUEST['id'])){
    $id=$_REQUEST['id'];
 
}else{
$id=0;}
 
	if (isset($_GET['controller'])&&isset($_GET['action'])) {
		$controller=$_GET['controller'];
		$action=$_GET['action'];
 
        call($controller,$action,$id);
	}
}else{
    echo "no existe";
    call("login","index",0);
}
?>

Ampliar
De la seguridad me voy a encargar despues,quiero que me funcione la sesion. El caso es que siempre redirige al login:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
require_once ("C:\\xampp\htdocs\gestionweb\includes\claseConexion.php");
 
class Login{
  private $estado;
  private $idp;
 
public function __construct(){
 
}
 
public function User($usuario,$pass)
{
	try
	{
            $conexion = Conexion::singleton_conexion();
 
		$stm=$conexion->prepare("SELECT * FROM despensa.usuarios WHERE nombre='".$usuario."' AND pass='".$pass."';");
 
              $stm->execute();
           $array=$stm->fetchAll(PDO::FETCH_ASSOC);
 
           if ($array>0){
                foreach ($array as $n){
 
                session_start();
            $_SESSION['usuario']=$n['nombre'];
            $_SESSION['idlog']=$n['iduser'];
                }
 
           }
		return $array;
 
 
		}
		catch(Exception $e)
		{
			die($e->getMessage());
		}
	}
 
}
 
?>

Ampliar

Y aclaro que tambien llamo a sesion_start() en el documento de template..que puede ser?

Aca el javascript dentro de login:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var usuarios;
$(document).ready(function() {
 
    $("#guardar").click(function(){
        var usuario = $("#usuario").val();
        var pass = $("#pass").val();
        $.ajax({
 
            type: "POST",
            url: "../gestionweb/views/procesologin.php",
            data: { "accion": "ingresar","user":usuario,"pass":pass},
       dataType:'json',
            error: function(){
                alert("error petición ajax");
            },
            success: function(data){
 
        if(data.length===0){
            alert("login incorrecto");
        }else{
 
            window.location.href="index.php?controller=template&action=index";
        }
 
            }
 
    });
 
});

Al hacer click en guardar manda user y pass a php.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder