Tengo dudas sobre este tema actualmente tengo lo siguiente, no se com propagar la variable $_SESSION['usuario'] y $_SESSION['nivel'] a otras páginas por ahora he podido pasarla a otro archivo mas llamado panelAdmin que le llega de aplicacion.php, pero esque de este archivo hay que volver a pasarlo a otra pagina mas y no se porque pero no me funciona de nuevo el mismo metodo para pasarla.
Código PHP:
Ver originalautenticacion.php
<?php
//Conectando a base de datos
or
die("<h3>No se ha podido establecer conexión con el servidor.</h3>");
//generando la consulta sobre el usuario y su contrasena
$qr = "SELECT usuario, password, nombre, apellidos, nivel ";
$qr .= "FROM usuarios WHERE usuario = '" . $_POST['usuario'];
$qr .= "' AND password = '" . $_POST['contrasena'] . "'";
//ejecutando la consulta
//verificando si hay un usuario con ese password mediante numrows
if($nr == 1){
//usuario y contraseña válidos
//se define una sesion y se guarda el dato session_start();
$_SESSION["autenticado"] = "si";
$_SESSION["usuario"] = $_POST['usuario'];
$_SESSION["nombreusr"] = $row->nombre . " " . $row->apellido;
$_SESSION['nivel'] = $row->nivel;
header ("Location: aplicacion.php?nivel=$_nivel"); }else if($nr <= 0) {
//si no existe se va a admin.php y pone el valor de error a SI
header("Location: admin.php?errorusuario=si"); } ?>
admin.php
<?php
// Desactivar toda notificación de errores
if ($_GET["errorusuario"]=="si"){
?>
<font color="red"><b>Datos incorrectos</b></font>
<?php
}else{
?>
<?php
}
?>
<form action="autenticacion.php" method="POST">
<table border="0">
<tr>
<td>Nombre de usuario </td>
<td><input name="usuario" size="25" value="" /></td>
</tr>
<tr>
<td>Contraseña </td>
<td><input name="contrasena" size="25" type="password" /></td>
</tr>
<tr>
<td></td><td><input type="submit" value="Inicio de sesión" /></td>
seguridad.php
<?php
//Inicio la sesión
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIfiCADO
if ($_SESSION["autenticado"] == "si" or $_SESSION["autenticado"] == "") {
}else{
//si el usuario no está autenticado
//redirigirlo a la página de inicio de sesión
header("Location: admin.php"); //salimos de este script
}
?>
aplicacion.php
<?php
include "seguridad.php";
if ($_SESSION['nivel'] == 'premium'){
echo ('Autentificado usuario con nivel premium');
echo 'pag principal para los premium necesario include indicando pag';
}else if($_SESSION['nivel'] == 'standard'){
echo ('Autentificado usuario con nivel standard');
echo 'pag principal para los standard necesario include indicando pag';
}else if($_SESSION['nivel'] == 'superadmin'){
$nivel = $_SESSION['nivel'];
$usuario = $_SESSION['usuario'];
header("Location: panelAdmin.html?nivel=$nivel&usuario=$usuario");
}else{
header("Location: admin.php"); }
?>