Autor Tema: [Tutorial] Sistema de Mensajes Privados  (Leído 9637 veces)

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
[Tutorial] Sistema de Mensajes Privados
« en: 22 de Abril de 2009, 22:36:27 pm »
Buenas, buenas..

En este tutorial les voy a explicar cómo realizar un sistema de mensajes privados para incorporar en tu web, foro, etc...

Empezamos con lo básico; la tabla:

Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `mensajes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titulo` varchar(255) NOT NULL,
  `receptor` varchar(30) NOT NULL,
  `emisor` varchar(30) NOT NULL,
  `mensaje` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Explicaciones:

id: ID del mensaje, útil para que se muestren en orden descendente o ascendente
titulo: Título del mensaje
emisor: El nick del usuario que escribe el mensaje
receptor: El nick del usuario que recibe el mensaje
mensaje: Contenido del mensaje

Bien, una vez creada la tabla, vamos con el código:

enviar.php

Código: [Seleccionar]
<?php
include("conectar.php");
?>

<?php
if(isset($_POST["enviar"])){
$titulo $_POST["titulo"];
$receptor $_POST["receptor"];
$emisor $_POST["emisor"];
$mensaje $_POST["mensaje"];
$query mysql_query("INSERT INTO mensajes (titulo, receptor, emisor, mensaje) VALUES (&#39;$titulo&#39;,&#39;$receptor&#39;,&#39;$emisor&#39;,&#39;$mensaje&#39;)") or die(mysql_error());
echo &
#39;<script>alert("El mensaje se envio exitosamente a &#39;.$_POST["receptor"].&#39;")</script>&#39;;
}
?>

<form name="mp" method="post" action="">
  <p>Tu Nick:<br>
    <input type="text" name="emisor" id="emisor">
  </p>
  <p>Receptor:<br>
    <input type="text" name="receptor" id="receptor">
  </p>
  <p>Título:<br>
    <input type="text" name="titulo" id="titulo">
  </p>
  <p>Mensaje:<br>
    <textarea name="mensaje" id="mensaje" cols="45" rows="5"></textarea>
  </p>
  <p>
    <input type="submit" name="enviar" id="enviar" value="Enviar">
  </p>
</form>

Bien, una vez terminado el formulario, pasamos a mostrar los mensajes...

index.php

Código: [Seleccionar]
<?php include(&#39;conectar.php&#39;); ?>
<?php
if(isset($_GET["borrar"])){
mysql_query("DELETE FROM mensajes WHERE id = &#39;$_GET[borrar]&#39;");
echo "<script>alert(&#39;El mensaje número $_GET[borrar] ha sido eliminado&#39;); document.location=(&#39;index.php&#39;)</script>";
}
?>

<?php
if(isset($_GET["id"])){
$sql mysql_query("SELECT * FROM mensajes WHERE id = &#39;$_GET[id]&#39;");
$fetch mysql_fetch_array($sql);
echo"<table><tr><td>
                  De: 
$fetch[emisor]
                  </td></tr><tr><td>
                  Para: 
$fetch[receptor]
                  </td></tr><tr><td>
                  Mensaje: 
$fetch[mensaje]
                  </td></tr></table><hr>[<a href=&#39;index.php&#39;>Volver</a> | <a href=&#39;index.php?borrar=
$fetch[id]&#39;>Eliminar</a>]";
}else{ 
?>

<?php
$query 
mysql_query("SELECT * FROM mensajes ORDER BY id DESC");
if(
mysql_num_rows($query)){
  while($row mysql_fetch_array($query)){
  echo "<table><tr><td>
                  De: 
$row[emisor]
                  </td></tr><tr><td>
                  Para: 
$row[receptor]
                  </td></tr><tr><td>
                  [<a href=&#39;index.php?id=
$row[id]&#39;>Leer mensaje</a>]
                  </td></tr></table>
  <hr>"
;
  }
}else{
echo&#39;No hay mensajes<hr>&#39;;
}
?>

[<a href="enviar.php">Enviar Mensaje</a>]
<?php ?>

Y eso es todo :P

Si tienen sistema de usuarios, les recomiendo para mostrar los mensajes solo de tu usuario, en el index.php, cambiar:

Código: [Seleccionar]
$query = mysql_query("SELECT * FROM mensajes ORDER BY id DESC");

Por esto:

Código: [Seleccionar]
$query = mysql_query("SELECT * FROM mensajes WHERE receptor = '$_COOKIE[usuario]' ORDER BY id DESC");

Espero que les haya gustado :P
- Moderador de PHP


Comunidad PHPeros

[Tutorial] Sistema de Mensajes Privados
« en: 22 de Abril de 2009, 22:36:27 pm »

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #1 en: 27 de Abril de 2009, 22:59:53 pm »
Muy buen aporte amigo ^^, te daría un +1 si pudiera.

Esto me va a servir para el sistema de foros que me estoy haciendo.

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #2 en: 02 de Mayo de 2009, 20:01:38 pm »
-.- haz agarrado mi codigo..

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #3 en: 04 de Mayo de 2009, 06:00:47 am »
Cual codigo? o.o
- Moderador de PHP


Desconectado jimmysito96

  • PHPerit@
  • *
  • Mensajes: 23
  • Karma: 1
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #4 en: 06 de Mayo de 2009, 02:08:52 am »
como ago para enviarselo a todos los registrados
CREES Q ME MERESCO Un KARMA

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #5 en: 06 de Mayo de 2009, 18:58:07 pm »
Facil, haces una lista de todos los usuarios, y que aparezcan en donde dice remitente

Desconectado jimmysito96

  • PHPerit@
  • *
  • Mensajes: 23
  • Karma: 1
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #6 en: 07 de Mayo de 2009, 00:16:20 am »
Cual codigo necesito para q solo vea los mensajes el receptor
« Última modificación: 09 de Mayo de 2009, 21:40:45 pm por jimmysito96 »
CREES Q ME MERESCO Un KARMA

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #7 en: 09 de Mayo de 2009, 02:21:30 am »
A mi si me funciona o.o
- Moderador de PHP


Desconectado HooKiPo

  • PHPerit@
  • *
  • Mensajes: 25
  • Karma: 0
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #8 en: 11 de Junio de 2009, 03:33:21 am »
tengo una pregunta? cual codigo es para advertirle a los usuarios qe su reseptor no existe?? lo probare gracias :D

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #9 en: 13 de Junio de 2009, 17:41:34 pm »
el codigo de mensajes privados que hice.. :/

facil, quitas lo de select y luego te fijas si hay valor de ese receptor en la tabla de usuarios y si no hay muestras el mensaje

Desconectado Joel

  • PHPer@ Fijo
  • ***
  • Mensajes: 141
  • Karma: 5
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #10 en: 01 de Agosto de 2009, 03:36:24 am »
Hola buen aporte! Me sirvio muchisimo. pero. ¿Como puedo hacer para que el usuario le llege un aviso diciendo "Has recibido un mensaje de "X" persona"?

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #11 en: 01 de Agosto de 2009, 21:02:21 pm »
bueno, pues puedes poner un código que al entrar en cada página compruebe si ha llegado nuevo mensaje, y si es así, le mandas la alerta, de l contrario, no haces nada XD
- Moderador de PHP


Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #12 en: 02 de Agosto de 2009, 00:07:07 am »
Esta muy bien pero mejoradle la seguridad, k no tiene...

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #13 en: 02 de Agosto de 2009, 02:53:36 am »
Ahora que lo veo mejor (sabiendo un poquito mas de php >.<) es algo un poco simple, osea, es como una especie de sistema de noticias xD

Desconectado nac

  • PHPer@ Fijo
  • ***
  • Mensajes: 139
  • Karma: 2
    • Ver Perfil
Re: [Tutorial] Sistema de Mensajes Privados
« Respuesta #14 en: 05 de Agosto de 2009, 04:34:17 am »
Cita de: HooKiPo link=topic=3600. msg24376#msg24376 date=1244684001
tengo una pregunta? cual codigo es para advertirle a los usuarios qe su reseptor no existe?? lo probare gracias :D

Podrias hacerlo con un if y una consulta de la tabla . .  (no se si estoy bien, pk soy medio n00b xD pero aun asin prueba :D)