Ver Mensaje Individual
  #13 (permalink)  
Antiguo 13/06/2012, 21:52
J0RG325
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

bueno segui el consejo de waldragon de mandar el id por medio del _GET y tenia razón solo que yo tenia mal una parte del codigo y era esta:

Código PHP:
$sent mysql_query("SELECT * FROM mensajeria WHERE destinatario='".$_GET['id']."'") or die(mysql_error()); 
reemplazar por esto:

Código PHP:
$sent mysql_query("SELECT * FROM mensajeria WHERE id='".$_GET['id']."'") or die(mysql_error()); 
lo pude hacer solo a esepción del codigo con la cantidad de mensajes en la bandeja de entrada que waldragon me fasilito.

mensajes.php
Código PHP:
<html>
<head><title>Mensajes</title>
</head>
<body>
<center>

<table width="100%"  border="0" align="center" cellpadding="4" cellspacing="0" class="tabla_subtitulo">
  <form name="form1">
    <tr>
      <td width="40%"> <?php
    session_start
();
    echo
"<script language=\"JavaScript\" type=\"text/JavaScript\">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+\".location='\"+selObj.options[selObj.selectedIndex].value+\"'\");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>"
;
    include(
'config.php'); // incluímos los datos de acceso a la BD
if(!isset($_SESSION['usuario_id']))
{
header("Location: index.php");
}
else
{
    
//aqui asegurate de poner la tabla correcta, mensajeria o mensajeriaenviados, segun corresponda
    
$sent="SELECT * FROM mensajeria WHERE destinatario='".$us."' AND estado=0";//en where estado puse 0 que me imagino es cuando todavia no leyo el mensaje, ok?.
    
$result mysql_query($sent);
    
$nummensajes mysql_num_rows($result);
    
//ahora hacemos que muestre un mensaje si hay mensajes nuevos sin leer
    
if($nummensajes>0){
    echo
"Tienes $nummensajes sin leer<br />";//tambien puedes ponerle un enlace hacia la seccion
    // en donde se muestran dichos mensajes, para que quede mejor.
    
}else{
    echo
"No tienes nuevos mensajes privados<br />";
    }    
$us $_SESSION['usuario_nombre'];
$consulta mysql_query("SELECT * FROM usuarios WHERE usuario_nombre = '$us'");
$row mysql_fetch_array($consulta);
echo 
" Bienvenido: <b>$row[1]</b>";
}
?></td>
      <td width="60%"><div align="center">
          <select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
            <option>-- Selecciona bandeja --</option>
            <option value="index.php?page_id=mensajes&id=band">Bandeja de Entrada</option>
            <option value="index.php?page_id=mensajes&id=envi">Bandeja de Salida</option>
          </select>
          | <a href="index.php?page_id=enviar_mensaje"><b>Nuevo Mensaje</b> </a></div></td>
    </tr>
  </form>
</table></center>
<?php
$us 
$_SESSION['usuario_nombre'];
$id $_GET['id'];
$msj = @$_GET['msj'];
if(
$id == 'band')
{
echo 
"<center><h3>Bandeja de Entrada</h3></center>";
$consulta mysql_query("SELECT * FROM usuarios WHERE usuario_nombre = '$us'");
$row0 mysql_fetch_array($consulta);
$bandeja mysql_query("SELECT * FROM mensajeria WHERE destinatario = '$row0[1]' ORDER BY id") or die("Error");
if(
mysql_num_rows($bandeja))
{
while(
$row mysql_fetch_array($bandeja))
{
echo 
"<table width='550' border='0' align='center' cellpadding='1' cellspacing='1'>
    <tr>
      <td width='53' align='center' valign='top' bgcolor='#999999'><strong>ID</strong></td>
      <td width='426' align='center' valign='top' bgcolor='#999999'><strong>Asunto</strong></td>
      <td width='321' align='center' valign='top' bgcolor='#999999'><strong>De</strong></td>
      <td width='321' align='center' valign='top' bgcolor='#999999'><strong>Fecha</strong></td>
      <td width='321' align='center' valign='top' bgcolor='#999999'><strong>Borrar</strong></td>
    </tr>
    <tr bgcolor=''>
      <td align='center' valign='top'>$row[0]</td>
      <td align='center' valign='top'><a href='index.php?page_id=message&id=$row[0]'>$row[3]</a></a></td>
      <td align='center' valign='top'>$row[1]</td>
      <td align='center' valign='top'>$row[5]</td>
      <td align='center' valign='top'><a href='index.php?page_id=mensajes&id=borra&msj=$row[0]'>Borrar Mensaje</a></td>
    </tr>
</table><br>"
;
echo 
"<center><a href='index.php?page_id=mensajes'>Volver</a></center>";
}
}
else
{
echo 
"<br /><code><center>No hay mensajes en la bandeja de entrada <a href='index.php?page_id=mensajes'>Regresar</a></center></code>";
}
}
else
{
if(
$id == 'envi')
{
echo 
"<center><h3>Elementos Enviados</h3></center>";
$consulta mysql_query("SELECT * FROM usuarios WHERE usuario_nombre = '$us'");
$row0 mysql_fetch_array($consulta);
$enviados mysql_query("SELECT * FROM mensajeriaenviados WHERE remitente = '$row0[1]' ORDER BY id");
if(
mysql_num_rows($enviados) > 0)
{
while(
$row mysql_fetch_array($enviados))
{
echo 
"<table width='550' border='0' align='center' cellpadding='1' cellspacing='1'>
    <tr>
      <td width='53' align='center' valign='top' bgcolor='#999999'><strong>ID</strong></td>
      <td width='426' align='center' valign='top' bgcolor='#999999'><strong>Asunto</strong></td>
      <td width='321' align='center' valign='top' bgcolor='#999999'><strong>Para</strong></td>
      <td width='321' align='center' valign='top' bgcolor='#999999'><strong>Fecha</strong></td>
      <td width='321' align='center' valign='top' bgcolor='#999999'><strong>Borrar</strong></td>
    </tr>
    <tr bgcolor=''>
      <td align='center' valign='top'>$row[0]</td>
      <td align='center' valign='top'><a href='index.php?page_id=message&id=$row[0]'>$row[3]</a></a></td>
      <td align='center' valign='top'>$row[2]</td>
      <td align='center' valign='top'>$row[5]</td>
      <td align='center' valign='top'><a href='index.php?page_id=mensajes&id=borraenv&msj=$row[0]'>Borrar Mensaje</a></td>
    </tr>
</table>"
;
}
}
else
{
echo 
"<br /><code><center>No existen elementos enviados <a href='index.php?page_id=mensajes'>Regresar</a></center></code>";
}
}
else
{
if(
$id == 'borra')
{
mysql_query("DELETE FROM mensajeria WHERE id = '$msj'");
header("Location: index.php?page_id=mensajes&id=band");
}
else
{
if(
$id == 'envio')
{
$consulta mysql_query("SELECT * FROM usuarios WHERE usuario_nombre = '$us'");
$row mysql_fetch_array($consulta);
$usu $row[1];
$des $_POST['destinatario'];
$asu $_POST['asunto'];
$men $_POST['mensaje'];
$fec date('d-m-Y H:i:s');
$est 0;
mysql_query("INSERT INTO mensajeria (remitente,destinatario,asunto,mensaje,fecha,estado) 
VALUES ('$usu','$des','$asu','$men','$fec','$est')"
);
mysql_query("INSERT INTO mensajeriaenviados (remitente,destinatario,asunto,mensaje,fecha,estado) 
VALUES ('$usu','$des','$asu','$men','$fec','$est')"
);
echo 
"<br /><code><center>Mensaje Enviado con &eacutexito <a href='index.php?page_id=mensajes'>Regresar</a></center></code>";
}
else
{
if(
$id == 'borraenv')
{
mysql_query("DELETE FROM mensajeriaenviados WHERE id = '$msj'");
header("Location: index.php?page_id=mensajes&id=band");
}
}
}
}
}
?>
enviar_mensaje.php
Código PHP:
<?php
    session_start
();
    include(
'config.php'); // incluímos los datos de acceso a la BD
if(!isset($_SESSION['usuario_id']))
{
header("Location: index.php");
}
else
{
$us $_SESSION['usuario_nombre'];
$consulta mysql_query("SELECT * FROM usuarios WHERE usuario_nombre = '$us'");
$row mysql_fetch_array($consulta);
echo 
"Bienvenido: <b>$row[1]</b>";
}
?>
<hr>
<center><h2>Enviar Mensaje Instantáneo</h2></center>
<form action='index.php?page_id=mensajes&id=envio' method='POST'>
<table align='center'>
<tr>
<td>
Destinatario:
</td>
<td>
<input type='text' name='destinatario' maxlenght='30' size='20'>
</td>
</tr>
<tr>
<td>
Asunto:
</td>
<td>
<input type='text' name='asunto' maxlenght='50' size='20'>
</td>
</tr>
<tr>
<td>
Mensaje:
</td>
<td>
<textarea name='mensaje'></textarea>
</td>
</tr>
</table>
<center><input type='submit' value='Enviar'></center>
</form>
<center><a href='index.php?page_id=perfil&dir=ucp'>Volver</a></center>
</body>
</html>
message.php
Código PHP:
<?php
    session_start
();
    include(
'config.php');
    
$sent mysql_query("SELECT * FROM mensajeria WHERE id='".$_GET['id']."'") or die(mysql_error());
    if(
mysql_num_rows($sent)) { // Comprobamos que exista el registro con la ID ingresada
        
$row mysql_fetch_array($sent);
        
$id $row["id"];
        
$remitente $row["remitente"];
        
$asunto $row["asunto"];
        
$fecha $row["fecha"];
        
$mensaje $row["mensaje"];
?>
        <strong>Remitente::</strong> <?=$remitente?><br />
        <strong>asunto:</strong> <?=$asunto?><br />
        <strong>fecha:</strong> <?=$fecha?><br />
        <strong>mensaje:</strong><?=$mensaje?><br />      
<?php
    
}else {
?>
        <p>la noticia seleccionada no existe o ha sido eliminada.</p>
<?php
    
}
?>
el problema que aun tengo esque mensajes.php modifique la tabla de bandeja de entrada y de bandeja de salida, pero se repite el titulo de la tabla he incluso puse un link de regresar en la bandeja de entrada y tambien se repite y no puedo quitarlo de forma que no se siga repitiendo, el otro problema esque aunque hize el modulo de message.php donde muestra el mensaje, en el contador sigue mostrando los mensajes que tiene aunque ya los haya visto, espero me puedan seguir ayudando para mejorar el modulo y si gustan pueden entrar y mirar como quedo...