PHP - Login - crear cerrar sesión

 
Vista:
sin imagen de perfil

Login - crear cerrar sesión

Publicado por John Alberto (4 intervenciones) el 20/05/2014 23:49:55
Buenas Tardes
Tengo el siguiente problema, tengo este login con permisos de usuarios que encontré en la web, es muy sencillo pero es lo que yo necesito, lo que pasa es que necesito agregarle el cerrar sesión pero no se como hacerlo,, quien me podría ayudar con esto
Muchas Gracias.

inicio_sesion.php
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
<!DOCTYPE html>
<html lang="es">
    <head>
    	<title>Control de Acceso a Usuarios por Perfiles</title>
        <link  rel="stylesheet" type="text/css" href="../css/inicio_sesion.css" />
   <meta charset="utf-8">
    </head>
 
    <body>
    <div id="apDiv1"><img src="../img/blogs caldas3.jpg" width="985" height="169" /></div>
<div id="apDiv2"><img src="../img/PLANTILLALOGO.png" width="188" height="164" /></div>
 
 
    <form name="login" action="validando.php" method="post">
      <div id="caja">
      <h3><font color="#0040ff">Inicio de Sesión</font></h3>
 
 
 <h3>Usuario:</h3>
 <input type="text" required name="Usuario" id="Usuario" />
 <h3>Clave:</h3>
 <input type="password" required name="Clave" id="Clave" />
        <input type="submit" name="SEND" value="Iniciar Sesión" />
      </div>
    </form>
</body>
</html>

validando.php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
//llamado de clases
 
require'class/conexion_usuarios.php';
require'class/cunsulta_usuarios.php';
 
$objcon = new Conexion();
$objcon->conectar();
 
$objuser = new Usuarios();
$objuser->login_in();
?>

consulta_usuarios.php
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
<?php
 
class Usuarios{
 
	public function __construct(){ 	}
 
	public function login_in(){
 
		$result = mysql_query("SELECT * FROM usuarios WHERE Usuario = '" . $_POST['Usuario'] . "'
			AND Clave = '" . $_POST['Clave'] . "' ");
 
		if($row=mysql_fetch_array($result)){
 
			$role = $row["Rol"];
 
			switch($role){
 
				case 'Adm':
 
					header('location: ../administrador/administrador.php');
					break;
 
				case 'Coor':
					header('location: ../coordinacion/coordinacion.php');
					break;
 
				case 'Inst':
					header('location: ../instructor/instructor.php');
					break;
 
			}
 
		}else{
			echo "Usuario no existe en la base de datos...";
		}
 
	}
 
}
 
?>

conexion_usuarios.php
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
<?php
 
class Conexion{
 
	public $user;
	public $pass;
	public $server;
	public $database;
 
	public function __construct(){
 
		$this->server = 'localhost';
		$this->user = 'root';
		$this->pass = '';
		$this->database = 'cepya';
 
	}
 
	public function conectar(){
 
		$con = mysql_connect($this->server, $this->user, $this->pass);
 
		mysql_select_db($this->database, $con);
	}
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login - crear cerrar sesión

Publicado por xve (6935 intervenciones) el 21/05/2014 09:13:43
Hola John, revisando este código, si pones en un navegador directamente la url:
http://tu dominio/administrador/administrador.php

Creo que te entrara, ya que no veo donde guarda en una cookie o variable de sesión el login del usuario, parece ser únicamente un link a una pagina dependiendo del usuario que se haya logeado.

Coméntanos si puedes acceder sin validar-te...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Login - crear cerrar sesión

Publicado por John (4 intervenciones) el 21/05/2014 22:40:55
Muchas gracias por su tiempo.
No, intente ingresar sin validar-me pero no me deja ingresar, osea que ahí esta bien. Ya logre hacer una pagina de cerrar sesión pero solo redirecciona mas no cierra la sesión, es decir que si yo le doy atrás continua la sesión abierta.
Este es el código completo

inicio_sesion.php
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
<!DOCTYPE html>
<html lang="es">
    <head>
    	<title>Control de Acceso a Usuarios por Perfiles</title>
        <link  rel="stylesheet" type="text/css" href="../css/inicio_sesion.css" />
   <meta charset="utf-8">
    </head>
 
    <body>
    <div id="apDiv1"><img src="../img/blogs caldas3.jpg" width="985" height="169" /></div>
<div id="apDiv2"><img src="../img/PLANTILLALOGO.png" width="188" height="164" /></div>
 
 
    <form name="login" action="validando.php" method="post">
      <div id="caja">
      <h3><font color="#0040ff">Inicio de Sesión</font></h3>
 
 
 <h3>Usuario:</h3>
 <input type="text" required name="Usuario" id="Usuario" />
 <h3>Clave:</h3>
 <input type="password" required name="Clave" id="Clave" />
        <input type="submit" name="SEND" value="Iniciar Sesión" />
      </div>
    </form>
</body>
</html>

validar.php
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
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php require_once('../Connections/conexion.php'); ?>
<?php
session_start();
 
//Variables
//$Mensaje = ""; $Usuario = ""; $Clave = "";
 
 
 
if(isset($_POST["Usuario"])) {
$cn=mysql_connect("localhost", "root", "");
mysql_select_db("cepya",$cn);
 
//$Usuario = mysql_real_escape_string($_POST["Usuario"]);
//$Clave = mysql_real_escape_string(md5($_POST["Clave"]));
 
 
$result = mysql_query("SELECT * FROM usuarios WHERE Usuario = '" . $_POST['Usuario'] . "'
			AND Clave = '" . $_POST['Clave'] . "' ");
 
		if($row=mysql_fetch_array($result)){
 
			$role = $row["Rol"];
 
			switch($role){
 
				case 'Adm':
 
					header('location: ../administrador/administrador.php');
					break;
 
				case 'Coor':
					header('location: ../coordinacion/coordinacion.php');
					break;
 
				case 'Inst':
					header('location: ../instructor/instructor.php');
					break;
 
			}
 
		}else{
			echo "Usuario no existe en la base de datos...";
		}
}
?>
 
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Validando</title>
</head>
 
<body>
</body>
</html>

Esto es lo que va en la pagina de administrador.php
1
<a href="../cerrar_sesion.php" target="_parent">Cerrar Sesion</a>

y esta es la de cerrar_sesion.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
session_start();
  if (! empty($_SESSION["Usuario"])) {
 unst($_SESSION["Usuario"]);
  }
  header("Location: administrador.html");
?>
 
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Cerrar Sesion</title>
</head>
 
<body>
</body>
</html>
Como les digo, si redirecciona al darle cerrar sesión pero si le doy atrás continua con la sesión abierta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login - crear cerrar sesión

Publicado por xve (6935 intervenciones) el 22/05/2014 08:22:46
Hola Jhon, la verdad es que no se ver donde crear la variable de sesión $_SESSION["Usuario"], únicamente con este código que nos muestras, no se como te funciona!!!

Entiendo que las crearas en algun otro archivo...

De todas maneras, para elimniar una variable de sesión, no es con:
1
unst($_SESSION["Usuario"]);
sino que es con:
1
unset($_SESSION["Usuario"]);

Espero que con esto te funcione...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar