Foros del Web » Programando para Internet » PHP »

Condicionar cabecera dependiendo del tipo de usuario

Estas en el tema de Condicionar cabecera dependiendo del tipo de usuario en el foro de PHP en Foros del Web. Hola estoy creando un sitio web que tiene tres tipos de usuarios y para cada uno de ellos quiero que tenga una cabecera diferente. -Usuario ...
  #1 (permalink)  
Antiguo 25/03/2015, 11:10
 
Fecha de Ingreso: marzo-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta Condicionar cabecera dependiendo del tipo de usuario

Hola estoy creando un sitio web que tiene tres tipos de usuarios y para cada uno de ellos quiero que tenga una cabecera diferente.
-Usuario no registrado:header1.php
-Usuario registrado y no administrativo:header2.php
-Usuario registrado y administrativo:header3.php

Para ello al principio de cada página estoy poniendo la siguiente condición:

Código:
<?php
session_start();

if ($_SESSION['idusuario'] = $idusuario)
{     
 if($idusuario['administrador']='si'){
	 include("header3.php");
 	}else{
	 include("header2.php");
    }
 }else{
	 include("header1.php");
	 }
?>

Mi problema es que todo el rato utiliza la cabecera header1 incluso cuando inicio sesión.
¿Puede alguien decirme cual es el problema y como lo puedo solucionar?


PD: Cuando inicia sesión un usuario se asigna al crear sesión
Código:
$_SESSION['idusuario'] = $idusuario;
PD: En la base de datos de la tabla usuarios se almacenan las columnas
idusuario / usuario / password / administrador
  #2 (permalink)  
Antiguo 25/03/2015, 12:19
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Condicionar cabecera dependiendo del tipo de usuario

Revisa que la variable $idusuario contiene lo que esperas. Utiliza var_dump o print_r
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 25/03/2015, 12:39
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 11 años, 2 meses
Puntos: 145
Respuesta: Condicionar cabecera dependiendo del tipo de usuario

Cita:
Iniciado por hhs Ver Mensaje
Revisa que la variable $idusuario contiene lo que esperas. Utiliza var_dump o print_r
O por HTML.

Código HTML:
Ver original
  1. <p>$idusuario = <?php echo $idusuario ?></p>
__________________
¿Te sirvió la respuesta? Deja un +1
  #4 (permalink)  
Antiguo 26/03/2015, 03:03
 
Fecha de Ingreso: marzo-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Condicionar cabecera dependiendo del tipo de usuario

Gracias por responder.

Lo que yo quiero que compruebe es primero si el usuario está registrado y para eso que compruebe si hay iniciada una sesión con ese 'idusuario' y si la hay iniciada que compruebe con el segundo id si ese usuario es administrador o no. Y en caso de que no haya iniciada una sesión con ese id que utilice el header1.php

He probado a utilizar <p>$idusuario = <?php echo $idusuario ?></p> y $idusuario sale vacio directamente y nose porque.
Si utilizo var_dump también me responde NULL.
Y he registrado varios usuarios.

Estoy bastante perdida si pudierais ayudarme me haríais un gran favor please
  #5 (permalink)  
Antiguo 26/03/2015, 06:49
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Condicionar cabecera dependiendo del tipo de usuario

Estás usando el operador de asignación "=" para comparar, en vez de "==".

if ($_SESSION['idusuario'] = $idusuario)

Cuando debe ser:

if ($_SESSION['idusuario'] == $idusuario)

También, de donde sale la variable $idusuario, ¿hay algo antes del session_start() o te has saltado parte del código? Porque obviamente esa variable no tendrá nada y esa comparación retornará falso.
  #6 (permalink)  
Antiguo 26/03/2015, 08:13
 
Fecha de Ingreso: marzo-2015
Mensajes: 3
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Condicionar cabecera dependiendo del tipo de usuario

He modificado a if ($_SESSION['idusuario'] == $idusuario) y entonces cada vez que cargo la página aparece directamente con header3.php

Respecto a la variable $idusuario antes del session_start() solo está $_SESSION["idusuario"]=$row["id"]; y la configuración de la base de datos ya que suponía que el $idusuario se rellenaba cuando se iniciaba sesión. Entonces, ¿qué crees que debería de poner antes de session_start()?

El código desde el principio de la página es el siguiente:
Código:
<!--BASE DATOS-->
<?php
// leer datos de usuario y contraseña de la base de datos
include("config.php") ;

// Conexión con el servidor
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());

// Selección de Base de Datos
mysql_select_db($database) or die ("error2".mysql_error());

//codificación:
mysql_query("SET NAMES 'utf8'");
header("Content-Type: text/html;charset=utf-8");
?>

<!--CABECERA-->

<?php
$_SESSION["idusuario"]=$row["id"];
session_start();


if ($_SESSION['idusuario'] == $idusuario){     

 if($idusuario['administrador']=='si'){
	 include("header3.php");
 	}else{
	 include("header2.php");
    }
 }else{
	 include("header1.php");
	 }

?><head>
<meta charset="UTF-8">

<!--TITULO-->
<title>Liga BBVA</title>

<!--ESTILOS-->
<link rel="stylesheet" href="/PHP/proyecto/estilos.css" type="text/css">
</head>

<!--CONTENIDO-->

<div class="contenido">
........
</div>
<!--FIN CONTENIDO-->

<!--PIE-->
<?php include("footer.php"); ?>

Etiquetas: condicionar, include, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:53.