Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sistema de Mensajeria Privada!

Estas en el tema de Sistema de Mensajeria Privada! en el foro de PHP en Foros del Web. Hola gente de forosdelweb bueno hace tiempo que estoy creando un sistema de usuarios y no voy a dejar escapar que mucho o la mayoria ...
  #1 (permalink)  
Antiguo 11/06/2012, 23:22
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
De acuerdo Sistema de Mensajeria Privada!

Hola gente de forosdelweb bueno hace tiempo que estoy creando un sistema de usuarios y no voy a dejar escapar que mucho o la mayoria del contenido del sistema lo he hecho con modulos o con guias de otras personas, un amigo me dijo que basicamente estaba pre-programando, pero bueno enfin.

Estube intentando con varios modulos de mensajeria privada pero no podia adaptarlos ami sistema, por ejemplo probe con este: http://www.forosdelweb.com/f18/sistema-mensajeria-interna-129177/ y no pude adaptarlo, hasta que encontre otro en un foro que solo era 1 archivo nada complicado y solo con cambiar algunos detalles funciono y funciono perfecto.

En conclusion lo que yo quisiera esque en tu bandeja te mostrara solo eso pero no con toda la información y que al darle click al mensaje te mande no se a otro modulo donde te muestre el mensaje completo, tambien para mensajes enviados y si no es mucho pedir un contador o algo para mi index.php donde muestre la cantidad de mensajes recibidos. Sin más aca les dejo el modulo.

SQL USUARIOS:
Código PHP:
CREATE TABLE `usuarios` (
  `
usuario_idint(4NOT NULL AUTO_INCREMENT,
  `
usuario_nombrevarchar(15COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `
usuario_clavevarchar(32COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `
usuario_emailvarchar(50COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `
sexotinyint(6NOT NULL DEFAULT '0',
  `
usuario_avatarvarchar(250COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `
usuario_fregdatetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  
PRIMARY KEY (`usuario_id`)

SQL MENSAJERIA:
Código PHP:
CREATE TABLE `mensajeria` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
remitentevarchar(50COLLATE latin1_general_ci NOT NULL,
  `
destinatariovarchar(50COLLATE latin1_general_ci NOT NULL,
  `
asuntovarchar(50COLLATE latin1_general_ci NOT NULL,
  `
mensajevarchar(250COLLATE latin1_general_ci NOT NULL,
  `
fechavarchar(20COLLATE latin1_general_ci NOT NULL,
  `
estadoint(10NOT NULL,
  
PRIMARY KEY (`id`)

SQL MENSAJERIAENVIADOS:
Código PHP:
CREATE TABLE `mensajeriaenviados` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
remitentevarchar(50COLLATE latin1_general_ci NOT NULL,
  `
destinatariovarchar(50COLLATE latin1_general_ci NOT NULL,
  `
asuntovarchar(50COLLATE latin1_general_ci NOT NULL,
  `
mensajevarchar(250COLLATE latin1_general_ci NOT NULL,
  `
fechavarchar(20COLLATE latin1_general_ci NOT NULL,
  `
estadoint(2NOT NULL,
  
PRIMARY KEY (`id`)

mensajeria.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>";
}
?>
<html>
<head><title>Mensajería</title>
</head>
<body>
<center><a href='index.php?page_id=mensajeria&id=band'>Bandeja de Entrada</a> | 
<a href='index.php?page_id=mensajeria&id=envi'>Enviados</a></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 align='center' border='1'>";
echo 
"<tr><td>Remitente:</td><td>$row[1]</td></tr>";
echo 
"<tr><td>Asunto:</td><td>$row[3]</td></tr>";
echo 
"<tr><td>Fecha:</td><td>$row[5]</td></tr>";
echo 
"<tr><td>Mensaje:</td><td>$row[4]</td></tr>";
echo 
"</table><center><a href='index.php?page_id=mensajeria&id=borra&msj=$row[0]'>Borrar Mensaje</a></center><br>";
}
}
else
{
echo 
"<center>No hay mensajes en la bandeja de entrada</center>";
}
}
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 align='center' border='1'>";
echo 
"<tr><td>Para:</td><td>$row[2]</td></tr>";
echo 
"<tr><td>Asunto:</td><td>$row[3]</td></tr>";
echo 
"<tr><td>Fecha:</td><td>$row[5]</td></tr>";
echo 
"<tr><td>Mensaje:</td><td>$row[4]</td></tr>";
echo 
"</table><center><a href='index.php?page_id=mensajeria&id=borraenv&msj=$row[0]'>Borrar Mensaje</a></center><br>";
}
}
else
{
echo 
"<center>No existen elementos enviados</center>";
}
}
else
{
if(
$id == 'borra')
{
mysql_query("DELETE FROM mensajeria WHERE id = '$msj'");
header("Location: index.php?page_id=mensajeria&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 
"<center>Mensaje Enviado con éxito</center>";
}
else
{
if(
$id == 'borraenv')
{
mysql_query("DELETE FROM mensajeriaenviados WHERE id = '$msj'");
header("Location: index.php?page_id=mensajeria&id=band");
}
}
}
}
}
?>
<hr>
<center><h2>Enviar Mensaje Instantáneo</h2></center>
<form action='index.php?page_id=mensajeria&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>
P.D.: Para darles una idea quiza podria ser como el Sistema de PM Marcoft como otro ejemplo...
de antemano gracias por leerlo.
  #2 (permalink)  
Antiguo 12/06/2012, 03:46
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 486
Antigüedad: 7 años, 10 meses
Puntos: 31
Respuesta: Sistema de Mensajeria Privada!

Bno amigo, deberas leerte el manual de las a consultas a base de datos, ya que lo que ahora necesitas es cuestion de consultar y saber programar algo de php
  #3 (permalink)  
Antiguo 12/06/2012, 15:20
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por gldelossantos Ver Mensaje
Bno amigo, deberas leerte el manual de las a consultas a base de datos, ya que lo que ahora necesitas es cuestion de consultar y saber programar algo de php
bueno se que tendria que leerme un manual, pero por algo pedi ayuda en el foro aunque bueno igual gracias por tu comentario...

y espero alguien si me pueda ayudar de favor.
  #4 (permalink)  
Antiguo 12/06/2012, 16:21
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por J0RG325 Ver Mensaje
bueno se que tendria que leerme un manual, pero por algo pedi ayuda en el foro aunque bueno igual gracias por tu comentario...

y espero alguien si me pueda ayudar de favor.
El foro esta para guiarte en el proceso, no para hacer el trabajo por ti. Para eso hay una categoria donde pagas por los programadores.

Te dejo un ejemplo de sistema de MP en PHP:

http://www.marcofbb.com.ar/sistema-d...-privados-php/

Saludos
  #5 (permalink)  
Antiguo 12/06/2012, 16:33
Avatar de fjrueda  
Fecha de Ingreso: marzo-2008
Ubicación: Bucaramanga
Mensajes: 313
Antigüedad: 11 años, 3 meses
Puntos: 35
Respuesta: Sistema de Mensajeria Privada!

Jorge ..... le recomiendo matarse la cabeza un poco haciendo ingeniería inversa al modulo Inbox de Facebook.

algo asi:
1) la persona crea el mensaje, este mensaje debe ir con el "id" del usuario remitente y el "id" del destinatario.
2) El usuario solo debe consultar los mensajes que corresponden a su "id".
3) Para la muestra haga solo la consulta con un campo de nombre titulo.
4) El titulo en el link debe tener el identificador de mensaje, para que la pagina de respuesta lo tome con un get y lo pueda consultar con el resto de campos.

Básicamente es esto, inténtelo un poco mas, no es tan complicado.
  #6 (permalink)  
Antiguo 12/06/2012, 16:43
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por marcofbb Ver Mensaje
El foro esta para guiarte en el proceso, no para hacer el trabajo por ti. Para eso hay una categoria donde pagas por los programadores.

Te dejo un ejemplo de sistema de MP en PHP:

[url]http://www.marcofbb.com.ar/sistema-de-mensajes-privados-php/[/url]

Saludos
bueno pedi ayuda creo que se podria ayudar a un usuario como se han ayudado en otros post...
tambien estoy tratando de aprender un poco y no ando siempre publicando ayuda en el foro y esperaba me podian ayudar y no creas que no intente con tu sistema pero no me funciono...

Cita:
Iniciado por fjrueda Ver Mensaje
Jorge ..... le recomiendo matarse la cabeza un poco haciendo ingeniería inversa al modulo Inbox de Facebook.

algo asi:
1) la persona crea el mensaje, este mensaje debe ir con el "id" del usuario remitente y el "id" del destinatario.
2) El usuario solo debe consultar los mensajes que corresponden a su "id".
3) Para la muestra haga solo la consulta con un campo de nombre titulo.
4) El titulo en el link debe tener el identificador de mensaje, para que la pagina de respuesta lo tome con un get y lo pueda consultar con el resto de campos.

Básicamente es esto, inténtelo un poco mas, no es tan complicado.
Gracias men lo voy a hacer y con los pasos que me dices voy a intentarlo y si logro hacerlo, lo publicare aunque solo 1 persona me haya ayudado o por lo menos me haya contestado bien...
  #7 (permalink)  
Antiguo 12/06/2012, 17:41
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sistema de Mensajeria Privada!

Te deje como ejemplo mi sistema para que veas el procedimiento y la lógica que usa, igualmente la lógica la podes sacar de cualquier pagina web Facebook, Forosdelweb, u otros foros.

Saludos
  #8 (permalink)  
Antiguo 12/06/2012, 20:24
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por marcofbb Ver Mensaje
Te deje como ejemplo mi sistema para que veas el procedimiento y la lógica que usa, igualmente la lógica la podes sacar de cualquier pagina web Facebook, Forosdelweb, u otros foros.

Saludos
gracias men e igual disculpa y pues bueno solo queria un poco de ayudota xD
  #9 (permalink)  
Antiguo 13/06/2012, 13:12
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 9 años
Puntos: 55
Respuesta: Sistema de Mensajeria Privada!

bueno, para mostrarle al usuario en el index cuando tiene nuevos mensajes tienes que poner algo como esto:
Código PHP:
Ver original
  1. $us = $_SESSION['usuario_nombre'];//esto ya esta en tu codigo
  2. //aqui asegurate de poner la tabla correcta, mensajeria o mensajeriaenviados, segun corresponda
  3. $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?.
  4. $result = mysql_query($sent);
  5. $nummensajes = mysql_num_rows($result);
  6. //ahora hacemos que muestre un mensaje si hay mensajes nuevos sin leer
  7. if($nummensajes>0){
  8. echo"Tienes $nummensajes sin leer";//tambien puedes ponerle un enlace hacia la seccion
  9. // en donde se muestran dichos mensajes, para que quede mejor.
  10. }else{
  11. echo"No tienes nuevos mensajes privados";
  12. }

Bueno, con eso te tiene que andar el aviso de mensajes nuevos en el index, para lo otro tienes que mandar el id del mensaje por _GET hacia la pagina en donde se muestran los mensajes, si quieres, puedes crear una cuenta de prueba asi entramos y vemos como esta armado el sistema de mensajes privados.
  #10 (permalink)  
Antiguo 13/06/2012, 16:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por waldragon Ver Mensaje
bueno, para mostrarle al usuario en el index cuando tiene nuevos mensajes tienes que poner algo como esto:
Código PHP:
Ver original
  1. $us = $_SESSION['usuario_nombre'];//esto ya esta en tu codigo
  2. //aqui asegurate de poner la tabla correcta, mensajeria o mensajeriaenviados, segun corresponda
  3. $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?.
  4. $result = mysql_query($sent);
  5. $nummensajes = mysql_num_rows($result);
  6. //ahora hacemos que muestre un mensaje si hay mensajes nuevos sin leer
  7. if($nummensajes>0){
  8. echo"Tienes $nummensajes sin leer";//tambien puedes ponerle un enlace hacia la seccion
  9. // en donde se muestran dichos mensajes, para que quede mejor.
  10. }else{
  11. echo"No tienes nuevos mensajes privados";
  12. }

Bueno, con eso te tiene que andar el aviso de mensajes nuevos en el index, para lo otro tienes que mandar el id del mensaje por _GET hacia la pagina en donde se muestran los mensajes, si quieres, puedes crear una cuenta de prueba asi entramos y vemos como esta armado el sistema de mensajes privados.
Me funciono perfecto en el index ese codigo, el unico inconveniente esque aunque ya haya visto el mensaje sigue apareciendo que tengo mensajes, la unicaforma es borrando el mensaje.

por otra parte estoy intentando hacerlo como dice con el _GET y queria ver que esta mal en este ya que me sale que no existe:

Código PHP:
<?php
    session_start
();
    include(
'config.php');
    
$sent mysql_query("SELECT * FROM mensajeria WHERE destinatario='".$_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
    
}
?>
si quieren verlo y probarlo aca les dejo el link: http://servimotosmova.hostei.com/cmss

usuario: test1
password: 123456
-----------------------
usuario: test2
password: 123456
-----------------------
usuario: test3
password: 123456
-----------------------
usuario: test4
password: 123456
-----------------------
  #11 (permalink)  
Antiguo 13/06/2012, 17:42
Avatar de fjrueda  
Fecha de Ingreso: marzo-2008
Ubicación: Bucaramanga
Mensajes: 313
Antigüedad: 11 años, 3 meses
Puntos: 35
Respuesta: Sistema de Mensajeria Privada!

Bueno yo entre y esta bien, una plantilla sencilla y comoda.

Ahora, no es necesario que elimine el mensaje, lo que puede hacer es agregar un tabla que indique un estado del mensaje -> 0=no leido, 1=leido, de esa forma ya no tiene que eliminarlo y no estara marcado siempre.

Y con lo segundo verifique que "destinatario" se un campo varchar o char porque le esta colcando '' si no lo es entonses quite las comillas y vuelva a intentarlo.

nos cuenta.
  #12 (permalink)  
Antiguo 13/06/2012, 19:12
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por fjrueda Ver Mensaje
Bueno yo entre y esta bien, una plantilla sencilla y comoda.

Ahora, no es necesario que elimine el mensaje, lo que puede hacer es agregar un tabla que indique un estado del mensaje -> 0=no leido, 1=leido, de esa forma ya no tiene que eliminarlo y no estara marcado siempre.

Y con lo segundo verifique que "destinatario" se un campo varchar o char porque le esta colcando '' si no lo es entonses quite las comillas y vuelva a intentarlo.

nos cuenta.
bueno la tabla es asi:
Código PHP:
CREATE TABLE `mensajeria` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
remitentevarchar(50COLLATE latin1_general_ci NOT NULL,
  `
destinatariovarchar(50COLLATE latin1_general_ci NOT NULL,
  `
asuntovarchar(50COLLATE latin1_general_ci NOT NULL,
  `
mensajevarchar(250COLLATE latin1_general_ci NOT NULL,
  `
fechavarchar(20COLLATE latin1_general_ci NOT NULL,
  `
estadoint(10NOT NULL,
  
PRIMARY KEY (`id`)

destinatario tiene varchar, y una de las tablas es estado ahi podria ponerse como leido o no leido no?, creo que podria quedar asi:
Código PHP:
    $sent mysql_query("SELECT * FROM mensajeria WHERE destinatario='".$_GET['id']."'") or die(mysql_error()); 
Código PHP:
$sent "SELECT * FROM mensajeria WHERE destinatario='".$_GET['id']."' and estado IS NULL"
pero creo que es lo mismo xD
  #13 (permalink)  
Antiguo 13/06/2012, 21:52
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 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...
  #14 (permalink)  
Antiguo 13/06/2012, 22:54
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 9 años
Puntos: 55
Respuesta: Sistema de Mensajeria Privada!

Tienes que agregar un update para modificar el estado a 1, de esa forma ya no los mostrara como sin leer
Código PHP:
Ver original
  1. $sentencia = "UPDATE mensajeria SET estado=1 WHERE  id = '" . $id . "';";
  2. mysql_query($sentencia)or die("Error al marcar el mensaje como leido: ".mysql_error());

Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include('config.php');
  4.     $sent = mysql_query("SELECT * FROM mensajeria WHERE id='".$_GET['id']."'") or die(mysql_error());
  5.      if(mysql_num_rows($sent)) { // Comprobamos que exista el registro con la ID ingresada
  6.          $row = mysql_fetch_array($sent);
  7.         $id = $row["id"];
  8.         $sentencia = "UPDATE mensajeria SET estado=1 WHERE  id = '" . $id . "';";
  9.         mysql_query($sentencia)or die("Error al marcar el mensaje como leido: ".mysql_error());
  10.         $remitente = $row["remitente"];
  11.         $asunto = $row["asunto"];
  12.         $fecha = $row["fecha"];
  13.         $mensaje = $row["mensaje"];
  14. ?>
  15.         <strong>Remitente::</strong> <?=$remitente?><br />
  16.         <strong>asunto:</strong> <?=$asunto?><br />
  17.         <strong>fecha:</strong> <?=$fecha?><br />
  18.         <strong>mensaje:</strong><?=$mensaje?><br />      
  19. <?php
  20.     }else {
  21. ?>
  22.         <p>la noticia seleccionada no existe o ha sido eliminada.</p>
  23. <?php
  24.     }
  25. ?>
  #15 (permalink)  
Antiguo 13/06/2012, 23:27
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 7 años, 4 meses
Puntos: 0
Respuesta: Sistema de Mensajeria Privada!

Cita:
Iniciado por waldragon Ver Mensaje
Tienes que agregar un update para modificar el estado a 1, de esa forma ya no los mostrara como sin leer
Código PHP:
Ver original
  1. $sentencia = "UPDATE mensajeria SET estado=1 WHERE  id = '" . $id . "';";
  2. mysql_query($sentencia)or die("Error al marcar el mensaje como leido: ".mysql_error());

Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include('config.php');
  4.     $sent = mysql_query("SELECT * FROM mensajeria WHERE id='".$_GET['id']."'") or die(mysql_error());
  5.      if(mysql_num_rows($sent)) { // Comprobamos que exista el registro con la ID ingresada
  6.          $row = mysql_fetch_array($sent);
  7.         $id = $row["id"];
  8.         $sentencia = "UPDATE mensajeria SET estado=1 WHERE  id = '" . $id . "';";
  9.         mysql_query($sentencia)or die("Error al marcar el mensaje como leido: ".mysql_error());
  10.         $remitente = $row["remitente"];
  11.         $asunto = $row["asunto"];
  12.         $fecha = $row["fecha"];
  13.         $mensaje = $row["mensaje"];
  14. ?>
  15.         <strong>Remitente::</strong> <?=$remitente?><br />
  16.         <strong>asunto:</strong> <?=$asunto?><br />
  17.         <strong>fecha:</strong> <?=$fecha?><br />
  18.         <strong>mensaje:</strong><?=$mensaje?><br />      
  19. <?php
  20.     }else {
  21. ?>
  22.         <p>la noticia seleccionada no existe o ha sido eliminada.</p>
  23. <?php
  24.     }
  25. ?>
perfecto amigo, me funciono de maravilla

Etiquetas: mensajeria, privada, 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 09:23.