Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con variable $_SESSION y funcion session_start()

Estas en el tema de Problema con variable $_SESSION y funcion session_start() en el foro de PHP en Foros del Web. Buenas noches, escribo para realizar una consulta sobre el problema que tengo. Para empezar, estoy intentando realizar un login en una página web, valido la ...
  #1 (permalink)  
Antiguo 13/05/2014, 19:41
Avatar de paula23andrea  
Fecha de Ingreso: noviembre-2012
Mensajes: 38
Antigüedad: 12 años
Puntos: 1
Pregunta Problema con variable $_SESSION y funcion session_start()

Buenas noches, escribo para realizar una consulta sobre el problema que tengo.
Para empezar, estoy intentando realizar un login en una página web, valido la entrada por la existencia de los datos en una base de datos en mysql, pero me di cuenta que para restringir el acceso a las páginas de acuerdo al usuario ingresado debía manejar las sesiones con php.
Este es el código que tengo en mi página de verificación:

Código PHP:
Ver original
  1. $identificacion= $_POST['user'];
  2. $contra=$_POST['pass'];
  3.  
  4. $conexion = mysql_connect("localhost", "u987900072_admin","udistrital1");
  5.  
  6. if (!$conexion)
  7. { die ('No pudo conectarse al motor: '.mysql_error()); }
  8.  
  9. mysql_select_db("u987900072_salud",$conexion) or die ("La BD no existe!");
  10.  
  11. $resultado = mysql_query("SELECT nombre from Administradores WHERE id ='$identificacion' AND pass = '$contra'",  $conexion) or die ("Problema en la consulta".mysql_error());
  12.  
  13. if($reg= mysql_fetch_array($resultado))
  14. {   echo "Bienvenido: ".$reg['nombre'];
  15.     $_SESSION['user']=$identificacion;
  16.     print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://hospitalsaludhoy.url.ph/Paciente/principalP.php'>";  }
  17. else
  18. { echo "Error, verifique sus datos e intente nuevamente";
  19. print "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=http://hospitalsaludhoy.url.ph'>";
  20. }
  21.  
  22. mysql_close($conexion) ;


Y este es el código que tengo en la página principalP.php que es a donde redirige si el usuario ingresado es correcto.

Código PHP:
Ver original
  1.    if ($_SESSION['user'])
  2.    {
  3.     echo "Bienvenido a la página exclusiva de registrados!";  
  4.    }
  5.    else
  6.    {
  7.     echo "Usted no está autorizado para acceder a esta página...";  
  8.     print "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=http://hospitalsaludhoy.url.ph'>";}
  9.     ?>


El problema que tengo es que al parecer el $_SESSION retorna false y siempre, siempre se ejecuta el else!
si se quiere verificar, en la página de inicio se puede ingresar con id: 1078013 y pass: 123456 que es un usuario real en la base de datos, con la que debería acceder al contenido de la página a la que redirecciono.

No entiendo qué estoy haciendo mal y sería de mucha utilidad si alguien me puede orientar, estoy aprendiendo de ceros php así que no tengo experiencia con este tipo de situaciones.
  #2 (permalink)  
Antiguo 13/05/2014, 19:45
 
Fecha de Ingreso: junio-2013
Ubicación: En cualquier parte de mi casa
Mensajes: 139
Antigüedad: 11 años, 5 meses
Puntos: 14
Respuesta: Problema con variable $_SESSION y funcion session_start()

Utiliza if (isset($_SESSION['user']))
  #3 (permalink)  
Antiguo 13/05/2014, 19:46
 
Fecha de Ingreso: junio-2013
Ubicación: En cualquier parte de mi casa
Mensajes: 139
Antigüedad: 11 años, 5 meses
Puntos: 14
Respuesta: Problema con variable $_SESSION y funcion session_start()

Por cierto en la pagina de conexion.php el session_start(); esta mal ubicado! el session_start(); siempre va ubicado al principio de cualquier cosa en la web unicamente despues del <?php
o sea quedando <?php session_start();
  #4 (permalink)  
Antiguo 13/05/2014, 19:53
Avatar de paula23andrea  
Fecha de Ingreso: noviembre-2012
Mensajes: 38
Antigüedad: 12 años
Puntos: 1
Respuesta: Problema con variable $_SESSION y funcion session_start()

Hice las dos cosas, el isset lo había probado, porque fue algo que leí pero no funcionó, lo volví a intentar y nada, también hice el cambio del session_start(); dejándolo al comienzo del <?php
pero tampoco, sigo obteniendo la ejecución del else.

Alguna otra posibilidad?
Gracias!
  #5 (permalink)  
Antiguo 13/05/2014, 20:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con variable $_SESSION y funcion session_start()

¿Y en qué parte del código es que almacenas dicho valor en la sesión?

Vamos, que no podemos adivinar cómo haces las cosas.

save_session.php
Código PHP:
Ver original
  1. $_SESSION['foo'] = 'bar';

read_session.php
Código PHP:
Ver original
  1. echo $_SESSION['foo']; // bar

http://www.php.net/manual/es/book.session.php

Por favor no olvides leer el manual, si algo haces mal no podemos leer tu mente.

Si haces algo que no está documentado en el manual es obvio que algo falle ¿no te parece lógico?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 14/05/2014, 11:12
Avatar de paula23andrea  
Fecha de Ingreso: noviembre-2012
Mensajes: 38
Antigüedad: 12 años
Puntos: 1
Exclamación Respuesta: Problema con variable $_SESSION y funcion session_start()

Ya encontré la solución al problema, al parecer es necesario poner el session_start en un bloque php antes de la primera etiqueta html!

Código PHP:
Ver original
  1. <?php session_start(); ?>
  2. <html>
  3. .
  4. .
  5. .
  6. .
  7. </html>

Muchas gracias por sus amables respuestas! :)
__________________
Suerte!!
  #7 (permalink)  
Antiguo 14/05/2014, 11:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con variable $_SESSION y funcion session_start()

Cita:
Iniciado por paula23andrea Ver Mensaje
Ya encontré la solución al problema, al parecer es necesario poner el session_start en un bloque php antes de la primera etiqueta html! [...]
Pues claro, eso se explica perfectamente en el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: login, sesión, usuario
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 18:42.