Programación Web y Scripting > PHP
Problema con Sesiones
(1/1)
zaida20:
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 ---<form id="validacion_usuario" name="validacion_usuario" method="post" action="../inicio_sesion/comprobar_acceso.php"> <table width="119" border="1" cellpadding="0" cellspacing="0" bordercolor="#CE0000"> <tr> <td width="115" valign="top" bordercolor="#FFFFFF" bgcolor="#CE0000"><div align="center"><span class="Estilo67 Estilo1">INICIO SESIÓN </span></div></td> </tr> <tr> <td height="72" valign="top" bgcolor="#FFFFFF"><table width="114" border="0" cellpadding="1" cellspacing="1"> <tr> <td width="110"><div align="left"><span class="Estilo70 Estilo80 Estilo2"> Usuario</span></div></td> </tr> <tr> <td height="24" valign="top"><div align="center"><span class="Estilo60"> <input name="usuar" type="text" size="17" style="height:12px;font-size:10px;border:solid 1px;border-color: #CE0000;" /> </span></div></td> </tr> <tr> <td><span class="Estilo83 Estilo2"> Contraseña</span></td> </tr> <tr> <td><div align="center"><span class="Estilo60"> <input name="contras" type="password" size="17" style="height:12px;font-size:10px;border:solid 1px;border-color: #CE0000;" /> </span></div></td> </tr> <tr> <td><div align="center"><img src="../img/Bok.gif" width="39" height="20" style="cursor:pointer" onclick="inicio_sesion()"/></div></td> </tr> <tr> <td class="Estilo79"><div align="center" class="Estilo80"> <div align="left" class="Estilo2"><u>Olvidé la Contraseña </u></div> </div></td> </tr> <tr> <td class="Estilo79" style="cursor:pointer" onclick="re()"><div align="center" class="Estilo80"> <div align="left" class="Estilo2"><u>Registrar</u></div> </div></td> </tr> </table></td> </tr> </table> </form> comprobar_acceso.php
--- Código: Text ---<?php //validamos usuario y contraseña ob_start();//para poder enviar en cualquier sitio header require'../conexion.php'; $usuario=$_POST['usuar']; $error=$_POST['error']; $contrasena=$_POST['contras']; if($_POST['usuar']!=NULL) { $obtener_blog="select id,nick,pass,nombre from usuarios where nick='$usuario' and pass='$contrasena'"; $i=0; $consulta=mysql_query($obtener_blog,$conexion); echo $consulta; if($consulta!=NULL) { if(mysql_num_rows($consulta)!=0) { // echo "existe"; $fila=mysql_fetch_array($consulta); $id_usuario=$fila['id']; $nombre=$fila['nick']; $nombre_usuario=$fila['nick']; //Metemos el resultado en variables de sesion session_start(); //Creo las variables de sesion unset($_SESSION['id_usuario']); unset($_SESSION['nick']); $_SESSION['id_usuario']=$id_usuario; $_SESSION['nick']=$nombre; //No chequeamos esta pagina en el navegador session_cache_limiter('nocache,private'); header('location:acceso_permitido.php'); } else { header('location:acceso.php?error=1'); } } mysql_close(); } ?> acceso_permitido.php
--- Código: Text ---<?php session_start(); //Creo las variables de sesion $nombre=$_SESSION['usuar']; ?> <html> <head> <title>Documento sin título</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="../estilo.css" rel="stylesheet" rev="stylesheet" type="text/css" /> <script> function onload(x) { top.document.ifr.location.href=x; } </script> <style type="text/css"> <!-- body { background-color: #FFCC66; } --> </style> </head> <?php if($_SESSION['pagina']!=NULL) { ?> <body leftmargin="0" topmargin="0" onLoad="onload('<?php echo $_SESSION['pagina']; ?>')"> <?php } else { ?> <body leftmargin="0" topmargin="0"> <?php } ?> <table width="117" height="84" border="1" cellpadding="0" cellspacing="0" bordercolor="#ce0000"> <tr> <td width="113" height="15" bordercolor="#ce0000" bgcolor="#ce0000"> <div align="center" class="Estilo3"><font color="#FFFFFF">Tecnología Solar </font></div></td> </tr> <tr> <td height="65" valign="top" bordercolor="#ce0000"><table width="108" height="61" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="26"> <div align="center"><span class="Estilo2">Bienvenido</span><font color="#9900FF"> <?php echo $nombre;?></font></div> </td> </tr> <tr> <td onClick="top.document.contenido.location.href='inicio2.php';document.location.href='eliminar_acceso.php'" style="cursor:pointer"><div align="center" class="Estilo1">[ quiero cerrar ]</div></td> </tr> </table> </td> </tr></table><div align="center"></div></body></html> foro.php
--- Código: Text ---<script>function nuevo_mensaje(){ document.getElementById('iframe2').style.visibility="visible";}</script><img src="../img/Bnuevo_mensaje.gif" width="100" height="20" style="cursor:pointer" onclick="nuevo_mensaje()" /><div id="iframe2"> <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></div> nuevo_mensaje.php
--- Código: Text ---<?php ob_start(); $_SESSION['pagina']="acceso_permitido.php"; if($_SESSION['id_usuario']!=NULL) { ?> Esta parte corresponde al formulario para escribir el mensaje <?php } else { ?> Para iniciar sesión deberás ingresar usuario y contraseña en la caja de la izquierda<?php } ?> 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:
F_Tanori:
Hola, a primera vista no se ve que tengas
--- Código: Text ---session_start(); en el archivo nuevo_mensaje.php recuerda que necesitas llamar esta funcion cada vez que ocupes utilizar las sesiones
($_SESSION)
Saludos
zaida20:
Hola F_Tanori
Muchas gracias , simpre ahi para ayudarme
Saludos :hola:
F_Tanori:
:D ;)
Navegación
Ir a la versión completa