> Faqs > Cómo recuperar una $_SESSION[" "] en php

Cómo recuperar una $_SESSION[" "] en php

Hola expertos desarrolladores: Revisé y lei todas las instrucciones que me enviaron y lo agradezco, pero no puedo recuperar el valor de la variable cuando inicio la session, adjunto los archivos para que por favor me digan que estoy haciendo mal. Gracias

HTML

<div class="row">
<form action="index_usuarios.php" method="POST">
<div class="col l12 hide-on-med-and-down">
	<div class="row">
<div class="input-field col l4 push-l4 altura2_l">
  <i class="material-icons prefix black-text text-darken-2">perm_identity</i>
  <input id="usuario" type="text" name="usuario" class="validate" required>
  <label for="usuario" class="black-text text-darken-2">Usuario</label>
</div>
	</div>
	<div class="row">
<div class="input-field col l4 push-l4 altura1_l">
  <i class="material-icons prefix black-text text-darken-2">vpn_key</i>
  <input id="clave" type="password" name="clave" class="validate" required>
  <label for="clave" class="black-text text-darken-2">Contraseña</label>
</div>
	</div>
	<div class="row">
<div class="input-field col l4 push-l4 altura_l">
			<input type="checkbox" name="guardar_clave" value="1">
			<label for="clave" class="black-text text-darken-2">Memorizar el usuario en este ordenador</label>
</div>
		<input name="ingreso" id="entrar_l" src="img/b3/candado_cerrado.png" type="image">
	</div>
</div>

PHP

<?php
  // Inicio sesion
  session_start();
  // obtenemos los datos desde el archivo index.html_entity_decode
  $usuario = $_POST['usuario'];
  $clave   = $_POST['clave'];

  // si es necesario cambiar la configuracion del php.ini desde el script
  ini_set("session.use_only_cookies","1");
  ini_set("session.use_trans_sid","0");

  // conectar el server y la base de date_default_timezone_set
  include('conexion_sql.php');

  // Query the Database for unregister_tick_function

  $result = sqlsrv_query($conn, "SELECT * from logon where usuario='$usuario' and clave='$clave'");
  $row    = sqlsrv_fetch_array($result);

  if($row['usuario'] == $usuario && $row['clave'] == $clave)
  {
    $_SESSION["userName"]=$row['nombre'];
    $_SESSION["userId"]=$row['id_usu'];
    // usuario y contraseña validas entonces ingreso
    $usuario_encontrado = $row['id_usu'];
    echo $_SESSION["userName"];
    echo $_SESSION["userId"];
    // cambiamos la duracion de la cookie de la session
    session_set_cookie_params(0,"/",$HTTP_SERVER_VARS["HTTP_HOST"],0);
    // defino la fecha y hora de inicio de sesion en formato aaa-mm-dd hh:mm:ss
    $_SESSION["ultimoAcceso"]=date("Y-n-j H:i:s");
    echo "Login success!! Welcome".$row['usuario'];
    //ahora debo de ver si el usuario quería memorizar su cuenta en este ordenador
   if ($_POST["guardar_clave"]=="1"){
     //es que pidió memorizar el usuario
     //1) creo una marca aleatoria en el registro de este usuario
     //alimentamos el generador de aleatorios
      mt_srand (time());
      //generamos un número aleatorio
      $numero_aleatorio = mt_rand(1000000,999999999);
      //2) meto la marca aleatoria en la tabla de usuario
      $ssql = "UPDATE logon set cookie='$numero_aleatorio' where id_usu=$usuario_encontrado";
      sql_query($ssql);
      //3) ahora meto una cookie en el ordenador del usuario con el identificador del usuario y la cookie aleatoria
      setcookie("id_usuario_dw", $usuario_encontrado , time()+(60*60*24*365));
      setcookie("marca_aleatoria_usuario_dw", $numero_aleatorio, time()+(60*60*24*365));
    }
      // echo "Autenticado correctamente";
      header("Location:menu.php");
     //include('menu.html');
   }else {
      echo '<script language="javascript">alert("Fallo el login!");</script>';
      header("Location:index.html");
     // include("index.html");
   }
   sql_close($conn);
 ?>
No se entiende muy bien en qué momento estás recuperando de las variables de sesión. En ese código solamente veo escrituras a $_SESSION. No recuperas nunca nada de las variables de sesión. Hola, gracias por contestar, el codigo que envio es el que carga las sesiones y quiero saber si está bien hasta allí por favor...

Respuestas

Hasta donde muestras el código parece correcto. Pero la mejor forma de saber si todo va bien es pobrarlo y con un código tan largo y tan poco específico es imposible de que nadie lo pueda probar.

Es mejor hacer preguntas más concretas para poder ayudar con respuestas más concretas.

Miguel Angel
3145 140 209 17