Sitio para usuarios com register_globals en off

Hola David.
Tengo una pregunta.Si podrías echar una mano estaría muy agradecido.
Muchas gracias por ayudarme otras becas.
No puedo consueguir hacer un sitio para el  usuario que puede ir de unu pagina a otra si en  php.ini register_globals=Off
El codigo de abajo funcciona si en php.ini  register_globals=On y si register_globals=Off no funciona.
//auth.php
<?php
session_start();
function check_valid_user()
{
  global $valid_user;
  if (session_is_registered("valid_user"))
  {
      echo "estas logeado como $valid_user.";
      echo "<br>";
  }
  else
  {
     echo "No estás logeado.<br>";
     exit;
  }
}
?>
//nombr.php
<?php
session_start();
include_once("auth.php");
$user="visitor";
if($user){
$valid_user=$user;
session_register('valid_user');
}
check_valid_user();
echo "<a href='pag3.php'>otra pagina</a>";
?>
//pag3.php
<?php
session_start();
include_once("auth.php");
check_valid_user();
if($valid_user){
echo "Esto es sitio de $valid_user";
}
?>
He probado esto de abajo pero tampoco funcciona:
//auth.php
<?php
session_start();
function check_valid_user()
{
  if (isset($HTTP_SESSION_VARS['valid_user']))//directamente la condicion no se cumple,
  {
      echo "estas logeado como ". $HTTP_SESSION_VARS['valid_user'];//$HTTP_SESSION_VARS[] es superglobal , asi que quieria usarlo en cambio de global $valid_user.
      echo "<br>";
  }
  else
  {
     echo "No estás logeado.<br>";
     exit;
  }
}
?>
//nombr.php
<?php
session_start();
include_once("auth.php");
$user="visitor";
if($user){
$valid_user=$user;
$HTTP_SESSION_VARS['valid_user']=$valid_user;
}
check_valid_user();
echo "<a href='pag3.php'>otra pagina</a>";
?>
//pag3.php
<?php
session_start();
include_once("auth.php");
check_valid_user();
if(isset($HTTP_SESSION_VARS['valid_user'])){
echo "Esto es sitio de ".$HTTP_SESSION_VARS['valid_user'];
}
?>
Mi pregunta es como puedo hacer algo parecido con register_globals = Off.

1 respuesta

Respuesta
1
Estas estructuras que usas están obsoletas.
Con las nuevas estructuras y register_globals a off, simplemente tienes que usar la matriz de sesión. Para almacenar el valor:
$_SESSION["valid_user"] = "Usuario";
y para leerlo:
echo $_SESSION["valid_user"];
Ten en cuenta también que con register_globals a off, los valores de los formularios NO se convierten a variables directamente y debes acceder a ellos mediante $_REQUEST["variable"]
Muchas Gracias David.
Respuesta excelente.
El problema resuelto.
Este código era un ejemplo, por esto no puesto formulario etc...
He validado formulario con extract($_REQUEST);
Antes tenia en cambio de $HTTP_SESSION_VARS['valid_user']
                                         $valid_user=$user
                                         session_register('valid_user')
 y quieria hacer lo mismo con $_session['valid_user']
es decir                                  $valid_user=$user
                                         $_SESSION('valid_user')
ahora lo veo claro ,que raro que no lo use como        $HTTP_SESSION_VARS['valid_user']=$user
y en cambio poner
$_SESSION['valid_user']=$user
Otra vez muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas