Foros del Web » Programando para Internet » PHP »

pasar variable dentro de sesión

Estas en el tema de pasar variable dentro de sesión en el foro de PHP en Foros del Web. hola!! necesito pasar una variable por todos los archivos una vez que el usuario ha iniciado sesión. Este es el archivo donde inicia sesión, he ...
  #1 (permalink)  
Antiguo 30/12/2007, 12:39
 
Fecha de Ingreso: octubre-2007
Mensajes: 14
Antigüedad: 16 años, 6 meses
Puntos: 0
pasar variable dentro de sesión

hola!!
necesito pasar una variable por todos los archivos una vez que el usuario ha iniciado sesión.

Este es el archivo donde inicia sesión, he puesto (línea en rojo)
<? register_variable("IDUSUARIO"); ?>
para registrar la variable que luego quiero ir pasando por todas las páginas, pero no sé si me falta algo o si está bien puesto.


iniciar.php
<html>
<body>
<p>
<?

require('../mysql.php');

if (db_open("proyecto")==FALSE)
{
echo "fallo de conexión"; //Conexion con la base de datos
exit;
}

$usuario=$_POST["usuario"];
$password=$_POST["password"];

$sql="select * from usuarios where usuario='$usuario' and password='$password'";

if (($query=db_query ($sql))==FALSE)
{
echo "USUARIO NO VÁLIDO";
exit;
}

if (db_rows($query)==0)
{
echo "ERROR";
exit;
}

$_SESSION['usuario'] = $usuario;


?>

HA INICIADO SESION CORRECTAMENTE</p>

<? register_variable("IDUSUARIO"); ?>

<p><a href="../pagina_inicio/marco_ppal.php" target="_self">página inicial</a></p>

<p>&nbsp;</p>
</body>
</html>


Luego, según creo, debería poder recuperar la variable en cualquiera de las páginas, por ejemplo, en la página inicial que es la página a la que te dirige esta.y para recuperar la variable (la línea en rojo); pero también me falla, y no sé que es lo que me falta o tengo que añadir.

marco_ppal.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.Estilo1 {
font-size: 24px;
font-weight: bold;
color: #CC0000;
}
body {
background-color: #FFFFCC;
}
.Estilo16 {color: #99FFFF}
-->
</style>
</head>

<body>
<div align="center" class="Estilo1">TRAVELPEDIA</div>
<p align="center"><img src="MAPAMundo1.gif" alt="" width="546" height="469" />&nbsp; </p>

<?
require ('../mysql.php');

$IDUSUARIO=$SESSION_VARS["IDUSUARIO"];

if (db_open("proyecto")==FALSE) //conexión con BBDD
{
echo "ERROR DE CONEXIÓN CON BBDD";
exit;
}

$sSQL="select IDCONTINENTE,NOMBRE from continentes ORDER BY NOMBRE"; //seleccionamos dos campos de la tabla continentes

$query=db_query($sSQL);

?>

<table width="800" border="0">
<tr>
<td width="80"></a></td>
<td width="160"></td>
<td width="190"></td>
<td width="160"></td>
<td width="60"></td>
<td width="80"></td>
<td width="70"></td>
</tr>

<?
// sacamos los datos del query, imprimimos el nombre del continente y hacemos enlace a continentes_inicio.php enviando la variable IDCONTINENTE

while ($row=db_fetch($query))
{
echo '<td><a href="../continentes/continente_inicio.php?IDCONTINENTE='.$row->IDCONTINENTE.'">'.$row->NOMBRE.'</a></td>';
}


?>

</table>

</body>
</html>


Muchas gracias!!

un saludo,
  #2 (permalink)  
Antiguo 30/12/2007, 12:53
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Re: pasar variable dentro de sesión

Buenas,
Lop que debes de hacer es identificar bien el problema en lugar de pegarnos todo el código.

Segpun parece en el código que nos muestras que no has iniciado la SESSION, esto lo debes de hacer tanto en el archivo donde declaras la variable y en los demás archivos donde la quieres usar.

Para inciar la session basta con que pongas

Código PHP:
<?php
session_start
();
?>
Antes de cualquier salida al navegador (Y antes de declarar o hacer uso de las variables de session), cuando yo voy a usar sessiones suelo poner éste código - EL que inicia la session - en la primera linea de todos los archivos.

También podrías ponerle un nombre a la session para evitar conflictos con otros scripts.

Para saber más de sessiones te recomiendo:
http://www.php.net/manual/es/ref.session.php

Hasta luego.
__________________
SEO en Medellin
  #3 (permalink)  
Antiguo 30/12/2007, 17:17
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años
Puntos: 1
Re: pasar variable dentro de sesión

Sí, y a modo de complemeto del comentario de mafima, puedes iniciar variables de sesión de la siguiente manera:

Código PHP:

$_SESSION
['IdUsuario'] = $id_del_usuario
Así cada ves que necesites esa variable, porque así es como se tratan, podras hacerlo con:

Código PHP:

$_SESSION
['IdUsuario'
  #4 (permalink)  
Antiguo 01/01/2008, 11:22
 
Fecha de Ingreso: octubre-2007
Mensajes: 14
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: pasar variable dentro de sesión

gracias a los dos!
tengo que probarlo porque no me acabo de aclarar del todo con las sesiones.
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 16:52.