Foros del Web » Programando para Internet » PHP »

Problema con Sesiones

Estas en el tema de Problema con Sesiones en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/06/2008, 03:51
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Problema con Sesiones

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 HTML:
 <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&Oacute;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&ntilde;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&eacute; la Contrase&ntilde;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 PHP:
<?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 PHP:
<?php

session_start
();
//Creo las variables de sesion
$nombre=$_SESSION['usuar'];
?>
<html>
<head>
<title>Documento sin t&iacute;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
}
?>
Código HTML:
<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&iacute;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 HTML:
<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 PHP:
<?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
__________________
-- Cuando sientas miedo y no tengas un hombro dónde apoyarte, no te hundas en la soledad, pues si lo haces fracasarás --
  #2 (permalink)  
Antiguo 30/06/2008, 04:35
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 7 meses
Puntos: 21
Respuesta: Problema con Sesiones

quizás te falle porque no incluiste
Código PHP:
session_start(); 
al inicio del fichero nuevo_mensaje.php

Código PHP:
<?php 
ob_start
(); 
$_SESSION['pagina']="acceso_permitido.php"
if(
$_SESSION['id_usuario']!=NULL

?>
y con esto:

Código PHP:
<?php session_start();
ob_start(); 
$_SESSION['pagina']="acceso_permitido.php"
if(
$_SESSION['id_usuario']!=NULL

?>
  #3 (permalink)  
Antiguo 30/06/2008, 04:53
Avatar de zaida  
Fecha de Ingreso: noviembre-2006
Ubicación: Madrid (España)
Mensajes: 266
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con Sesiones

Muchas gracias nx00!!!!

La cosa más sencilla, el quebradero de cabeza que me ha dado!!

Mil gracias otra vez!!!!
Saludos
__________________
-- Cuando sientas miedo y no tengas un hombro dónde apoyarte, no te hundas en la soledad, pues si lo haces fracasarás --
  #4 (permalink)  
Antiguo 30/06/2008, 04:56
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 7 meses
Puntos: 21
Respuesta: Problema con Sesiones

de nada!
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 06:35.