Foros del Web » Programando para Internet » PHP »

como enviar session en un header

Estas en el tema de como enviar session en un header en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo el inicio de sesion pero tengo inconvenientes con la sesion, se esta perdiendo..Primero comento de q forma lo hago porque ...
  #1 (permalink)  
Antiguo 17/02/2013, 10:57
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
como enviar session en un header

Hola a todos, estoy haciendo el inicio de sesion pero tengo inconvenientes con la sesion, se esta perdiendo..Primero comento de q forma lo hago porque tambien me gustaria recibir asesoria si esta es una forma correcta de hacerlo:

En mi index solicito usuario y contraseña, de ahi voy a otro archivo donde validoel usuario y contraseña y dependiendo del resultado redireccion con header a otra pagina o simplemente envio por GET un mensaje de error a la pagina index

Asi en el codigo:

index.php

Código PHP:
Ver original
  1. <div class="login">
  2. <form id="iniciosesion" method="post" action="login.php">
  3. <div >
  4. <br/>
  5. <input type="submit" id="login" name="login" value="Iniciar sesion" />
  6. </div>
  7. <div >
  8. Contraseña
  9. <br/>
  10. <input type="password" name="password" />
  11. </div>
  12. <div >
  13. Usuario
  14. <br/>
  15. <input type="text" name="user" />
  16. </div>
  17. </form>
  18.  
  19. </div>

login.php
Código PHP:
Ver original
  1. require("conexion.php");
  2. $db = conectar();
  3. $user=$_POST['user'];
  4. $pass=$_POST['password'];
  5. $sql="SELECT * FROM usuarios WHERE COD_USU=? AND PAS_USU=?";
  6. $result = $db->prepare($sql);
  7. $result->execute(array($user, sha1($pass)));
  8. $numfilas = $result->rowCount();
  9. if($numfilas==0)
  10. header("Location: index.php?l_error=Usuario Invalido");
  11. else
  12. {
  13.   $_SESSION["login"] = $user;  
  14.   header ("Location: main");  
  15. }

En la carpeta main tengo otro index.php donde ya armo el menu:

Código PHP:
Ver original
  1. <!DOCTYPE HTML>
  2. <head>
  3.     <meta http-equiv="content-type" content="text/html" />
  4.     <meta name="author" content="www.intercambiosvirtuales.org" />
  5.  
  6.     <title>Sofware - Iniciar sesion</title>
  7.        
  8.          <link rel="stylesheet" href="../css/estilos.css" type="text/css" media="screen" />
  9.         <link rel="stylesheet" href="../css/estilo_menu.css" type="text/css" media="screen" />
  10.  
  11. </head>
  12.  
  13. <body>
  14. <div class="elemento"></div>
  15.  
  16.  
  17. <div class="menu">
  18. <?php
  19. include("../menu.php");
  20. ?>
  21.  
  22. </div>
  23. <div class="cuerpo">
  24. <iframe name="contenido" frameborder="0"  style=" width: 96%; min-height:900px;  text-align: center;"  >
  25. </div>
  26. </body>
  27. </html>
El archivo menu.php muestra el menu, este menu es traido desde la base de datos y recarga en el iframe contenido toda la informacion..Pero el problema es que en cada archivo que recargo en ese iframe no existe la session de usuario..Que estoy haciendo mal?

Es recomendable hacer la validacionn de logueo en otro archivo? Porque tambien podria hacerlo sobre el mismo index donde pido el usuario y contraseña, pero necesito primero la opinion en este foro..Agradezco me puedan colaborar..
  #2 (permalink)  
Antiguo 17/02/2013, 10:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como enviar session en un header

Pues es claro que no inicias sesión con session_start() en ningún lado, ¿o si?

Eso debes hacerlo no solo donde lees la sesión, sino también cuando escribes en ella.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/02/2013, 11:09
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como enviar session en un header

Yo en cada archivo lo primero que coloco es el session_start();

pero le doy :
Código PHP:
Ver original
  1. $login=$_SESSION["login"] ;
  2. echo $login;
y aparece el error Notice: Undefined variable: _SESSION
  #4 (permalink)  
Antiguo 17/02/2013, 11:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como enviar session en un header

Pues carece de sentido, ayúdanos a ver mejor mostrando el código completo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/02/2013, 11:22
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: como enviar session en un header

Bueno he encontrado un simple error.... no esta colocando en la etiqueta de abertura la palabra php

Pero ahora me surge otra duda, porqué si valido que exista la session me esta dejando pasar asi la termine?

Yo tengo un archivo el cual incluyo en todos los demas para validar la sesion de usuario, este archivo contiene lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. if (!isset($_SESSION["login"])) {
  3.     //echo "<script> top.location='../index.php'; </script>";
  4.     header("Location: index.php");
  5.    exit();
  6.    
  7. }
  8. ?>

y en los demas archivo es lo primero q incluyo:
<?php
require("valida_usu.php");
?>
Sin embargo no esta funcionando...Porque?

acaso exit no terminaria el script del archivo?
Ahora otra pregunta, seria recomendable usar un try catch ?

Etiquetas: header, html, select, session, sql, usuarios
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 20:50.