• Domingo 28 de Abril de 2024, 21:03

Autor Tema:  Problema con Sesiones  (Leído 1818 veces)

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Problema con Sesiones
« en: Lunes 30 de Junio de 2008, 11:56 »
0
Hola a todos, os explico:

Estoy haciendo un pequeño foro y necesito que al hacer click en un botón (Nuevo mensaje), me verifique si el usuario ha iniciado sesión, si es así que pueda escribir el mensaje y si no que aparezca un aviso diciendole que tiene que iniciar sesión.
Éste es mi código:

inicio_sesion.php
Código: Text
  1. <form id="validacion_usuario" name="validacion_usuario" method="post" action="../inicio_sesion/comprobar_acceso.php">
  2.     <table width="119" border="1" cellpadding="0" cellspacing="0" bordercolor="#CE0000">
  3.       <tr>
  4.         <td width="115" valign="top" bordercolor="#FFFFFF" bgcolor="#CE0000"><div align="center"><span class="Estilo67 Estilo1">INICIO
  5.               SESIÓN </span></div></td>
  6.       </tr>
  7.       <tr>
  8.         <td height="72" valign="top" bgcolor="#FFFFFF"><table width="114" border="0" cellpadding="1" cellspacing="1">
  9.             <tr>
  10.               <td width="110"><div align="left"><span class="Estilo70 Estilo80 Estilo2"> Usuario</span></div></td>
  11.             </tr>
  12.             <tr>
  13.               <td height="24" valign="top"><div align="center"><span class="Estilo60">
  14.                 <input name="usuar" type="text"  size="17" style="height:12px;font-size:10px;border:solid 1px;border-color: #CE0000;" />
  15.               </span></div></td>
  16.             </tr>
  17.             <tr>
  18.               <td><span class="Estilo83 Estilo2"> Contraseña</span></td>
  19.             </tr>
  20.             <tr>
  21.               <td><div align="center"><span class="Estilo60">
  22.                   <input name="contras" type="password"  size="17" style="height:12px;font-size:10px;border:solid 1px;border-color: #CE0000;" />
  23.               </span></div></td>
  24.             </tr>
  25.             <tr>
  26.               <td><div align="center"><img src="../img/Bok.gif" width="39" height="20" style="cursor:pointer" onclick="inicio_sesion()"/></div></td>
  27.             </tr>
  28.             <tr>
  29.               <td class="Estilo79"><div align="center" class="Estilo80">
  30.                   <div align="left" class="Estilo2"><u>Olvidé la Contraseña </u></div>
  31.               </div></td>
  32.             </tr>
  33.             <tr>
  34.               <td class="Estilo79" style="cursor:pointer" onclick="re()"><div align="center" class="Estilo80">
  35.                   <div align="left" class="Estilo2"><u>Registrar</u></div>
  36.               </div></td>
  37.             </tr>
  38.         </table></td>
  39.       </tr>
  40.     </table>
  41.   </form>
  42.  
comprobar_acceso.php
Código: Text
  1. <?php
  2. //validamos usuario y contraseña
  3. ob_start();//para poder enviar en cualquier sitio header
  4. require'../conexion.php';
  5. $usuario=$_POST['usuar'];
  6. $error=$_POST['error'];
  7. $contrasena=$_POST['contras'];
  8. if($_POST['usuar']!=NULL)
  9. {
  10.     $obtener_blog="select id,nick,pass,nombre from usuarios where nick='$usuario' and pass='$contrasena'";
  11.     $i=0;
  12.     $consulta=mysql_query($obtener_blog,$conexion);
  13.     echo $consulta;
  14.     if($consulta!=NULL)
  15.     {
  16.         if(mysql_num_rows($consulta)!=0)
  17.         {
  18. //            echo "existe";
  19.             $fila=mysql_fetch_array($consulta);
  20.             $id_usuario=$fila['id'];
  21.             $nombre=$fila['nick'];
  22.             $nombre_usuario=$fila['nick'];
  23.             //Metemos el resultado en variables de sesion
  24.             session_start();
  25.             //Creo las variables de sesion
  26.             unset($_SESSION['id_usuario']);
  27.             unset($_SESSION['nick']);
  28.             $_SESSION['id_usuario']=$id_usuario;
  29.             $_SESSION['nick']=$nombre;
  30.             //No chequeamos esta pagina en el navegador
  31.             session_cache_limiter('nocache,private');
  32.             header('location:acceso_permitido.php');
  33.         }
  34.         else
  35.         {
  36.             header('location:acceso.php?error=1');
  37.         }
  38.     }
  39. mysql_close();
  40. }
  41. ?>
  42.  
acceso_permitido.php
Código: Text
  1. <?php
  2.  
  3. session_start();
  4. //Creo las variables de sesion
  5. $nombre=$_SESSION['usuar'];
  6. ?>
  7. <html>
  8. <head>
  9. <title>Documento sin título</title>
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  11. <link href="../estilo.css" rel="stylesheet" rev="stylesheet" type="text/css" />
  12. <script>
  13. function onload(x)
  14. {
  15.     top.document.ifr.location.href=x;
  16. }
  17. </script>
  18. <style type="text/css">
  19. <!--
  20.  
  21. body {
  22.     background-color: #FFCC66;
  23. }
  24. -->
  25. </style>
  26. </head>
  27.  
  28. <?php  
  29. if($_SESSION['pagina']!=NULL)
  30. {
  31. ?>
  32. <body leftmargin="0" topmargin="0" onLoad="onload('<?php echo $_SESSION['pagina']; ?>')">
  33. <?php
  34. }
  35. else
  36. {
  37. ?>
  38. <body leftmargin="0" topmargin="0">
  39. <?php
  40. }
  41. ?>
  42. <table width="117" height="84" border="1" cellpadding="0" cellspacing="0" bordercolor="#ce0000">
  43.   <tr>
  44.     <td width="113" height="15" bordercolor="#ce0000" bgcolor="#ce0000"> <div align="center" class="Estilo3"><font color="#FFFFFF">Tecnología
  45.     Solar </font></div></td>
  46.   </tr>
  47.   <tr>
  48.     <td height="65" valign="top" bordercolor="#ce0000">
  49. <table width="108" height="61" border="0" align="center" cellpadding="0" cellspacing="0">
  50.         <tr>
  51.           <td height="26">
  52.             <div align="center"><span class="Estilo2">Bienvenido</span><font color="#9900FF"> <?php echo $nombre;?></font></div>          </td>
  53.         </tr>
  54.         <tr>
  55.           <td onClick="top.document.contenido.location.href='inicio2.php';document.location.href='eliminar_acceso.php'" style="cursor:pointer"><div align="center" class="Estilo1">[
  56.               quiero cerrar ]</div></td>
  57.         </tr>
  58.     </table> </td>
  59.   </tr>
  60. </table>
  61. <div align="center"></div>
  62. </body>
  63. </html>
  64.  
foro.php
Código: Text
  1. <script>
  2. function nuevo_mensaje()
  3. {
  4.     document.getElementById('iframe2').style.visibility="visible";
  5. }
  6. </script>
  7. <img src="../img/Bnuevo_mensaje.gif" width="100" height="20" style="cursor:pointer" onclick="nuevo_mensaje()" />
  8. <div id="iframe2">
  9.   <iframe src="nuevo_mensaje.php" name="ifr" width="600px" height="450px" frameborder="0" id="ifr" onload="document.getElementById('iframe2').style.visibilty='hidden'" scrolling="no" ></iframe>
  10. </div>
  11.  
nuevo_mensaje.php
Código: Text
  1. <?php
  2. ob_start();
  3. $_SESSION['pagina']="acceso_permitido.php";
  4. if($_SESSION['id_usuario']!=NULL)
  5. {
  6. ?>
  7. Esta parte corresponde al formulario para escribir el mensaje
  8. <?php
  9. }
  10. else
  11. {
  12. ?>
  13. Para  
  14.         iniciar sesión deberás ingresar usuario y contraseña en la caja de  
  15.         la izquierda<?php
  16. }
  17. ?>
  18.  
El inicio de sesion lo realiza correstamente, pero inicie sesion o no me aparece el aviso de que necesito iniciar sesión para escribir el mensaje, ¿Qué estoy haciendo mal?

Saludos y mil gracias  :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema con Sesiones
« Respuesta #1 en: Martes 1 de Julio de 2008, 05:52 »
0
Hola, a primera vista no se ve que tengas

Código: Text
  1. session_start();
  2.  
en el archivo nuevo_mensaje.php recuerda que necesitas llamar esta funcion cada vez  que ocupes utilizar las sesiones
($_SESSION)


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

zaida20

  • Miembro MUY activo
  • ***
  • Mensajes: 213
    • Ver Perfil
Re: Problema con Sesiones
« Respuesta #2 en: Martes 1 de Julio de 2008, 09:22 »
0
Hola F_Tanori
Muchas gracias , simpre ahi para ayudarme

Saludos :hola:
---- Las oportunidades que se te presentan son las que son y ellas te llevarán a la felicidad ----

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema con Sesiones
« Respuesta #3 en: Miércoles 2 de Julio de 2008, 22:57 »
0
:D  ;)
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================