
Sesiones en PHP (con SQL)
Publicado por Alejo Javier (1 intervención) el 01/07/2015 21:27:23
Buenas a Todos!
Tengo unos codigos parecidos a los que pongo aqui a continuacion.
Son un inicio de sesion basico (creo) consultando los datos ingresados con una base de datos.
Formulario
Validar_usuario.php
Index.php:
Logout.php:
Lo que yo planeo hacer con es que una persona que inicie sesion pueda generar modificaciones sobre la pagina web (la pagina web trataria de shows de espectaculos de una empresa vendedora de entradas para estos, y la persona que inicia sesion, por ejemplo, podria agregar modificar o eliminar algun evento desde la pagina web; pero no ahondo mucho en eso porque no creo que sea necesario).
Mi consulta sobre lo que quiero hacer es: cuando la persona inicia sesion correctamente, como hago para agregar en la pagina web opciones que solo las personas con sesiones iniciadas deberian poder ver? O tengo que usar otra pagina que sea identica a la original pero que admita generarle cambios? O deberia ser una sola pagina que tenga a la vista la posibilidad de generar los cambios pero que si se le hace clic compruebe si hay una sesion iniciada?
Que me conviene hacer? Como convendria hacerlo?
Desde ya, gracias!
Saludos!
Tengo unos codigos parecidos a los que pongo aqui a continuacion.
Son un inicio de sesion basico (creo) consultando los datos ingresados con una base de datos.
Formulario
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form action="validar_usuario.php" method="post">
<table>
<tr>
<td>Usuario:</td>
<td><input name="admin" required="required" type="text" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password_usuario" required="required" type="password" /></td>
</tr>
<tr>
<td colspan="2"><input name="iniciar" type="submit" value="Iniciar Sesión" /></td>
</tr>
</table>
</form>
Validar_usuario.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
58
59
60
61
62
63
64
65
66
67
68
<?php
/*
**establecemos conexion con el servidor.
**nombre del servidor: localhost.
**Nombre de usuario: root.
**Contraseña de usuario: root.
**Si la conexion fallara mandamos un msj 'ha fallado la conexion'*/
mysql_connect('localhost','root','root')or die ('Ha fallado la conexión: '.mysql_error());
/*Luego hacemos la conexión a la base de datos.
**De igual manera mandamos un msj si hay algun error*/
mysql_select_db('db_blog')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
/*caturamos nuestros datos que fueron enviados desde el formulario mediante el metodo POST
**y los almacenamos en variables.*/
$usuario = $_POST["admin"];
$password = $_POST["password_usuario"];
/*Consulta de mysql con la que indicamos que necesitamos que seleccione
**solo los campos que tenga como nombre_administrador el que el formulario
**le ha enviado*/
$result = mysql_query("SELECT * FROM administradores WHERE nombre_administrador = '$usuario'");
//Validamos si el nombre del administrador existe en la base de datos o es correcto
if($row = mysql_fetch_array($result))
{
//Si el usuario es correcto ahora validamos su contraseña
if($row["password"] == $password)
{
//Creamos sesión
session_start();
//Almacenamos el nombre de usuario en una variable de sesión usuario
$_SESSION['usuario'] = $usuario;
//Redireccionamos a la pagina: index.php
header("Location: index.php");
}
else
{
//En caso que la contraseña sea incorrecta enviamos un msj y redireccionamos a login.php
?>
<script languaje="javascript">
alert("Contraseña Incorrecta");
location.href = "login.php";
</script>
<?
}
}
else
{
//en caso que el nombre de administrador es incorrecto enviamos un msj y redireccionamos a login.php
?>
<script languaje="javascript">
alert("El nombre de usuario es incorrecto!");
location.href = "login.html";
</script>
<?
}
//Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
mysql_free_result($result);
/*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
**necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
**programar una aplicación que tendrá muchas visitas ;) .*/
mysql_close();
?>
Index.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
//creamos la sesion
session_start();
//validamos si se ha hecho o no el inicio de sesion correctamente
//si no se ha hecho la sesion nos regresará a login.php
if(!isset($_SESSION['usuario']))
{
header('Location: login.php');
exit();
}
?>
<h1>BIENVENIDO</h1>
<a href="logout.php">Cerrar Sesión</a>
<?
?>
Logout.php:
1
2
3
4
5
6
7
8
9
10
<?php
//Crear sesión
session_start();
//Vaciar sesión
$_SESSION = array();
//Destruir Sesión
session_destroy();
//Redireccionar a login.php
header("location: login.php");
?>
Lo que yo planeo hacer con es que una persona que inicie sesion pueda generar modificaciones sobre la pagina web (la pagina web trataria de shows de espectaculos de una empresa vendedora de entradas para estos, y la persona que inicia sesion, por ejemplo, podria agregar modificar o eliminar algun evento desde la pagina web; pero no ahondo mucho en eso porque no creo que sea necesario).
Mi consulta sobre lo que quiero hacer es: cuando la persona inicia sesion correctamente, como hago para agregar en la pagina web opciones que solo las personas con sesiones iniciadas deberian poder ver? O tengo que usar otra pagina que sea identica a la original pero que admita generarle cambios? O deberia ser una sola pagina que tenga a la vista la posibilidad de generar los cambios pero que si se le hace clic compruebe si hay una sesion iniciada?
Que me conviene hacer? Como convendria hacerlo?
Desde ya, gracias!
Saludos!
Valora esta pregunta


0