Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones

Estas en el tema de Ayuda con sesiones en el foro de PHP en Foros del Web. Hola a todos. Mi problema es el siguiente: tengo una pagina por donde uno ingresa su rut y su contraseña, esta informacion es enviada a ...
  #1 (permalink)  
Antiguo 04/08/2004, 19:36
 
Fecha de Ingreso: febrero-2004
Mensajes: 47
Antigüedad: 20 años, 2 meses
Puntos: 0
Ayuda con sesiones

Hola a todos.

Mi problema es el siguiente:
tengo una pagina por donde uno ingresa su rut y su contraseña, esta informacion es enviada a otra pagina donde comprueba si es que existe el ususario en una base de datos. (todo esto funciona bien), en la pagina que procesa la informacion si es que es valido el usuario, mando algunos datos a variables de session . por ejemplo el rut, el usuario y otros, los cuales no estan disponibles en las sigueintes paginas donde las queiro usar.. aca pongo el codigo para ver si me pueden ayudar a ver donde esta mi error

procesa_registro.php

//llamo las funciones para la coneccion a la base de datos
<? include('funciones.php');

//comprobamos si las variables vienen desde el formualrio
if (isseat($_POST['rut']) && isset($_POST['pss'])) {
// conecto a la BD
$dbc = DB_connect();
// Realizo la consulta a la base de datos respecto de los datos ingresador por el usuario
$consulta_usuario = "select * from Claves_acceso where Rut = '".$_POST['rut']."'";
$resultado= mysql_query($consulta_usuario);

if (mysql_num_rows($resultado) != 0)
{
$rut = stripslashes($_POST['rut']); // almaceno los datos ingresados en el formulario
$pass = md5($_POST['pass']);
$datos_consulta = mysql_fetch_array($resultado); // almaceno los datos que me entrega la consuta a la BD

if ($pass != $datos_consulta['Password']) // comprobacion de password
{ echo "El Rut ó Password es Incorrecto";
exit; }


// se inicia la sesion
session_start();


//guardo en una variable de sesion los distintos valores que tiene en la BD necesarios para otras opciones
$_SESSION['rut'] = $datos_consulta['Rut'];
$_SESSION['id'] = $datos_consulta['Id'];
$_SESSION['user'] = $datos_consulta['User'];
$_SESSION['nivel_acceso'] = $datos_consulta['Nivel_acceso'];

header("Location: pag_autorizada.php?");

} else {
echo "el usuario no se encuentra en la base de datos";

}
}
?>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>

pagina_autorizada.php

<? session_start();
$nivel_acceso = 2;
if($nivel_acceso == $_SESSION['nivel_acceso']) {

$rut = $_SESSION['Rut'];
$nivel_acceso = $_SESSION['Nivel_acceso'];


}
else{
session_destroy();
Header ("Location: sin_autorizacion.php");
} ?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="700" border="1" align="center">
<tr>
<td width="224">MENU </td>
<td width="192">Rut: <? echo $rut; ?></td>
<td width="165">Nivel Acceso: <? echo $nivel_acceso; ?> </td>
<td width="91"><a href="log_out.php">Cerrar Sesi&oacute;n</a></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="mod_inf_general.php">Modificacion Informacion General</a> </td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>


Ojala alguien me pueda ayudar
gracias de antemano

Saludos
  #2 (permalink)  
Antiguo 04/08/2004, 23:18
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años
Puntos: 2
¿En el resto de páginas pones session_start(); antes de sacar los datos de la sesión?
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 04/08/2004, 23:38
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años
Puntos: 2
Perdona pero no me había fijado en qe si estaba puesto . Puede ser que sea por como tengas configurado tu php:

http://es2.php.net/manual/es/ref.session.php
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #4 (permalink)  
Antiguo 05/08/2004, 04:01
 
Fecha de Ingreso: agosto-2004
Mensajes: 4
Antigüedad: 19 años, 8 meses
Puntos: 0
Voy a ir por partes, ya que he visto algunos errores en el codigo. Voy poniendo la linea escrita por ti y la correcta:

if (isseat($_POST['rut']) && isset($_POST['pss'])) {
if ((isset($_POST['rut']))&&(isset($_POST['pss'])))

$pass = md5($_POST['pass']);
$pass = md5($_POST['pss']);

$rut = $_SESSION['Rut'];
$rut = $_SESSION['rut'];

$nivel_acceso = $_SESSION['Nivel_acceso'];
$nivel_acceso = $_SESSION['nivel_acceso'];

Estas siguientes no son errores, simplemente lo pongo mas facil:
<td width="192">Rut: <? echo $rut; ?></td>
<td width="192">Rut: <?=$rut?></td>

<td width="165">Nivel Acceso: <? echo $nivel_acceso; ?> </td>
<td width="165">Nivel Acceso: <?=$nivel_acceso?></td>

Ya nos contaras a ver si te funciona o no
  #5 (permalink)  
Antiguo 05/08/2004, 07:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Y despues de cada header() de "location" .. termina la ejecución del script en ese punto .. con exit;

Código PHP:
session_destroy();
Header ("Location: sin_autorizacion.php");
exit; 
Un saludo,
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 20:18.