Foros del Web » Programando para Internet » PHP »

Problema con variable de sesión

Estas en el tema de Problema con variable de sesión en el foro de PHP en Foros del Web. Tengo un error en este código, ya que no me da la instrucción adecuada: Código PHP: <?php         function  cabecerapagina ()        { $usuario = $HTTP_POST_VARS [ 'usuario' ...
  #1 (permalink)  
Antiguo 06/02/2003, 09:36
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Problema con variable de sesión

Tengo un error en este código, ya que no me da la instrucción adecuada:

Código PHP:
<?php        function cabecerapagina()        {
$usuario=$HTTP_POST_VARS['usuario'];
$password=$HTTP_POST_VARS['password'];
include(
"conex.php");
$bd_enlace mysql_connect($bd_host$bd_usuario$bd_password) or die ("La base de datos se encuentra caida.");
mysql_select_db($bd,$bd_enlace);
echo 
mysql_error();
$consultar="SELECT * FROM usuario WHERE usuario='";
$consultar.=$usuario;
$consultar.="'";$consultamysql_query($consultar);
echo 
mysql_error();
$fila=mysql_fetch_array($consulta);
IF (
$usuario=="") { 
$error_usuario="0";
$_SESSION['usuario']="Invitado"; } ELSE
IF (
$fila['password']==$password) { 

$_SESSION['usuario']=$fila['usuario'];
$_SESSION['nombre']=$fila['nombre'];
} else { 
$error_usuario="Password no encontrado";
}
session_name($usuarios_sesion);
session_start();
?>
<html>
(...)
<? if ($_SESSION['usuario']=="Invitado") { ?>
      <form name="Ident" method="post" action="">
        <div align="center"><b></b> 
          <table width="100%" border="0" cellspacing="0" cellpadding="2">
            <tr> 
              <td><b><font face="Arial, Helvetica, sans-serif" size="2">Usuario</font></b></td>
              <td><b><font face="Arial, Helvetica, sans-serif"> 
                <input type="text" name="usuario" size="8">
                </font></b></td>
            </tr>
            <tr> 
              <td><b><font face="Arial, Helvetica, sans-serif" size="2">Password</font></b></td>
              <td><b><font face="Arial, Helvetica, sans-serif"> 
                <input type="password" name="password" value="" size="8">
                </font></b></td>
            </tr>
          </table>
          <b><font face="Arial, Helvetica, sans-serif"> </font></b> 
          <input type="hidden" name="url" value="<? echo $PHP_SELF?>">
          <input type="submit" name="Submit" value="::Entrar::">
  </div>
</form>
      <div align="center"><a href="http://www.ladodos.com/mi/registro.php">Registrarse</a> 
        <? } ELSE { 
      echo 
"<center><b><font face='Arial, Helvetica, sans-serif' size='2'>Bienvenido "
      echo 
$_SESSION['usuario']; 
      echo 
"</font></b></center>";
      } 
?>
El problema esta de que $_SESSION['usuario']; ignora el valor de Invitado, y pone el campo vacio, y lo que quiero es que se despliegue el formulario de usuario. Cosa que no hace.

¿¿¿¿que puedo hacer?????
  #2 (permalink)  
Antiguo 06/02/2003, 09:43
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Creo que debes iniciar la sesión desde el principio...

Prueba a ver si es eso.
__________________
Manoloweb
  #3 (permalink)  
Antiguo 06/02/2003, 10:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes un buen lio ...

Usas una funcion en la q asumes q todo es global .. y no es así .. ejemplos $HTTP_POST_VARS .. no es global .. osese se lo tendras q pasar a la funcion como parametro o referencia .. o declaralo global ..

Ya q estas usando $_SESSION .. usa $_POST q son los arrays "superglobales" .. estos $_POST .. $_GET .. etc si que son globales y los podrias llamar dentro del ambito (scope) de una funcion pues son globales ..

Dentro de la funcion cabecerapagina() te falta iniciar:
session_name($usuario_sesion);
session_register();

antes de usar $_SESSION ... para registrar alguna variable en la sesion .. o para obtener su valor.

A su vez .. ese $usuario_sesion .. tampoco se lo pasas a la funcion de ninguna forma ... y .. el cierre de la funcion con ese úlmo ELSE no lo veo claro ..

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 22:59.