Foros del Web » Programando para Internet » PHP »

Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de PHP en Foros del Web. Hola a todos, estoy creando una Base de Datos para una universidad como proyecto, pero tengo un problema, no se como manejar del todo bien ...
  #1 (permalink)  
Antiguo 20/11/2006, 13:44
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Problema con sesiones

Hola a todos, estoy creando una Base de Datos para una universidad como proyecto, pero tengo un problema, no se como manejar del todo bien las sesiones, es decir, no se como hacer para crear una sesion para la secretaria, otra para los docentes, otra para los estudiantes, he podido crear una sesion para la secretaria ,entonces al loguearse puede hacer varias cosas, pero quiero que al loguearse un estudiante salgan otras cosas (notas,info personal), y que al loguearse un docente salgan otras opciones(registrar notas, etc). Hay alguna forma de controlar eso con sesiones? si es posible como se haria ?.

Agradezco la ayuda que me puedan brindar, saludos¡¡
  #2 (permalink)  
Antiguo 20/11/2006, 13:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En tu variable de sesión que identifica al usuario en tu sistema "logueado" tendrías que definir un nivel de acceso o propiedad de tu usuario que propagar en otra variable de sesión para poder aplicar condicionales tipo:

Código PHP:
if ($_SESSION['grupo_usuario'] == "docente"){
   
// haces el proceso que sólo tenga que ver el "docente".

Lo mismo para otras taréas ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 20/11/2006, 15:05
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Problema :S

Hola de nuevo, he intentado lo que me has dicho pero no me sale de ninguna forma, siempre me deja loguear solo a la secretaria, aca esta el codigo por si alguien me puede colaborar.

Código:
<?php
session_start();
?>

<html>
<body>

<?php


$basedatos = mysql_connect("localhost","root");

if(!$basedatos)
{
	echo "Ha ocurrido un problema accesando a la BD, intentelo de nuevo mas tarde, <a href='acceso.php'><b>Regresar</b></a>";
	exit;
}	


mysql_select_db("kerberos2",$basedatos);

$consulta="SELECT id,password,grupo from kerberos";

$re = mysql_query($consulta,$basedatos);
$fila = mysql_fetch_array($re);

if(empty($password) && empty($id))
{

}
else 
{

	if( $fila["password"] == $password && $fila["id"] == $id)
	{
		$sesion=$id;
		session_register("sesion");
	}

	else
	{
		echo "mal";
	}
	
} 
?>


<?php


if(session_is_registered("sesion"))
{
	include('comprobacion.php');
	
}

else
{
echo "<center>";
echo "<form action=\"index.php\" method='post'>";
echo  "<table width=257 border=1>";
echo "<tr>";
echo "	<td>";
echo "		Usuario:";
echo "	</td>";
echo "<td>";
echo "		<input type=text name=id>";
echo "	</td>";
echo "</tr>";
echo "<tr>";
echo "	<td>";
echo " 		Contraseña:";
echo "	</td>";
echo "	<td>";
echo "		<input type=password name=password>";
echo "	</td>";
echo "</tr>";
echo "<tr>";
echo "	<td colspan=2 align=right>";
echo "		<input type=submit value=Ingresar>";
echo " 	</td>";
echo "</tr>";
echo "</table>";
echo "</form>";
echo "</center>";
}

?>

</body>
</html>

Código:
<html>
<body>
<?php
	
	
	$consulta3="select grupo from kerberos where grupo=\"secretaria\"";
	$res=mysql_query($consulta3,$basedatos);
	
	$num=mysql_num_rows($res);
	
	if($num>0)
	{
		echo "<a href='logout.php'>logout</a>";
		echo "<br>Bien";
	}
	

	$consulta4="select grupo from kerberos where grupo=\"docente\"";
	$re2=mysql_query($consulta4,$basedatos);
	
	$num2=mysql_num_rows($re2);
	
	if($num2>0)
	{
		echo "<a href='logout.php'>logout</a>";
		echo "<br>Bien2";
	}
	
		
?>

</body>
</html>
Ojala me puedan ayudar, gracias de ante mano.

Última edición por delta132; 20/11/2006 a las 15:48
  #4 (permalink)  
Antiguo 20/11/2006, 17:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo primero que deberías abandora SI o SI es tu forma de trabajar con sesiones. NO uses session_register() por tu bien, usa los arrays superglobales: $_SESSION

más info:
www.php.net/session

Y en las FAQ's de este foro.

Por lo demás ... no entiendo el sentido de tu código .. no sé para que haces consultas SQL .. Se trata de aprovechar las sesiones al máximo.

Necesitas los siguientes ingredientes:
1) Tu Base de datos debe contener para tus usuarios un campo que indentifique el grupo o nivel de acceso en tu sistema (parece que ese campo "grupo" es el que define esa propiedad de tu usuario).

2) Al autentificarse tu usuario -debes- crear variables de sesión con datos própios del usuario autentificado. Al parecer sólo registras una variable: "el ID del usuario" .. eso está bien .. pero necesitarías también el "grupo" del usuario en otra variable de sesión .. así te evitas hacer una consulta SQl a tu BBDD por el ID del usuario para ver su grupo constantemente .. para eso son las sesiones, para evitar este tipo de situaciones. Las sesiones son datos que sólo le pertenecen al usuario (cliente) que las inicia .. por eso usalas, no las infrautilices.

Un saludo,



Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 20/11/2006, 18:17
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años
Puntos: 14
Ok, muchas gracias, ya empeze a leer los enlaces que dejaste,
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 05:45.