Foros del Web » Programando para Internet » PHP »

Aporte sistema de mensajeria interna con usuarios conectados

Estas en el tema de Aporte sistema de mensajeria interna con usuarios conectados en el foro de PHP en Foros del Web. ahora continuare con el aporte .. desta vez con el sistema de mensajeria. bueno primero hay que crear la base de datos para los mensajes ...
  #1 (permalink)  
Antiguo 02/05/2011, 14:41
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Aporte sistema de mensajeria interna con usuarios conectados

ahora continuare con el aporte ..
desta vez con el sistema de mensajeria. bueno primero hay que crear la base de datos para los mensajes

les dejo los campos

$query = 'CREATE TABLE mensajes (
msgid int(9) NOT NULL auto_increment,
de char(255) NOT NULL,
para char(255) NOT NULL,
asunto char(255) NOT NULL,
mensaje longtext NOT NULL,
fecha char(255) NOT NULL,
leido int(10) NOT NULL default "0",
PRIMARY KEY (msgid)
)';
  #2 (permalink)  
Antiguo 02/05/2011, 14:50
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

el codigo para la selecion del los datos del usuario s que queremos enviar los mensajes internos...

Ahi va :

conecfot.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Usuarios en linea ahora</title>
  5. <meta name="description" content="Easiest jQuery Tooltip Ever">
  6. <script src="jquery.js" type="text/javascript"></script>
  7. <script src="main.js" type="text/javascript"></script>
  8. </meta>
  9.  
  10.  
  11. <style>
  12. body {
  13.     margin:0;
  14.     padding:0px;
  15.     background:#fff;
  16.     font:80% Arial, Helvetica, sans-serif;
  17.     color:#555;
  18.     line-height:180%;
  19.     background-color: #004000;
  20.    
  21. }
  22.  
  23. h1{
  24.     font-size:180%;
  25.     font-weight:normal;
  26.     color:#555;
  27. }
  28. h2{
  29.     clear:both;
  30.     font-size:160%;
  31.     font-weight:normal;
  32.     color:#555;
  33.     margin:0;
  34.     padding:.5em 0;
  35. }
  36. a{
  37.     text-decoration:none;
  38.     color:#f30;
  39.     font-family: Comic Sans MS;
  40. }
  41. p{
  42.     clear:both;
  43.     margin:0;
  44.     padding:.5em 0;
  45. }
  46. pre{
  47.     display:block;
  48.     font:100% "Courier New", Courier, monospace;
  49.     padding:10px;
  50.     border:1px solid #bae2f0;
  51.     background:#e3f4f9;
  52.     margin:.5em 0;
  53.     overflow:auto;
  54.     width:800px;
  55.    
  56. }
  57.  
  58. img{border:none;}
  59. ul,li{
  60.     margin:0;
  61.     padding:0;
  62. }
  63. li{
  64.     list-style:none;
  65.     float:left;
  66.     display:inline;
  67.     margin-right:0px;
  68. }
  69.  
  70.  
  71.  
  72. /*  */
  73.  
  74. #screenshot{
  75.     position: absolute;
  76.     z-index:1;
  77.     border:1px solid #ccc;
  78.     background:#333;
  79.     padding:5px;
  80.     display:none;
  81.     color:#fff;
  82.     }
  83.  
  84. /*  */
  85. body,td,th {
  86.     font-family: Comic Sans MS;
  87.     color: #000000;
  88.     font-size: 12px;
  89. }
  90. a:link {
  91.     color: #0000FF;
  92. }
  93. a:visited {
  94.     color: #0000FF;
  95. }
  96. </style>
  97. </head>
  98. <body>
  99. <table border="0" align="center" bgcolor="#C0C000">
  100.   <tr>
  101.     <td valign="top">
  102. <?php echo "<table width=\"470\" cellspacing=\"1\" cellpadding=\"1\">";
  103. echo "<tr>";
  104. echo "<td rowspan=\"2\" width=\"80\"style='border:1px solid #808080' >";
  105.             echo '<b> Total de usuarios conectados</b>'; require ("Usuarios/total_usuarios_conectados.php");//veremos la cantidad de usuarios on line en este momento
  106.             echo "</td>";
  107.             echo "</tr>";
  108.             echo "</table >";  
  109.             ?>
  110. <?php
  111. // selecionaremos los datos que necesitamos y inprimiremos solo los logueados
  112. //los que tengan como valor el "si" que significa que estan logueados en este momento.
  113.  
  114. $result=mysql_query("select * from usuarios  where  conectado='si' order by id asc ");
  115. $cadena="";
  116. while($row=mysql_fetch_array($result))
  117. {
  118. $cadena=$cadena.
  119. '<a href= "/enviar_mensajes.php?usuario='.$row['nick'] .'&mail= '. $row['mail'] .'"
  120.  class="screenshot"
  121.  rel=" http://www.esquinadosamba.cl/Usuarios1/imagenes/thumbnails/'. $row[imagen]. '
  122.  "title="Envie un mensaje a<br> '.$row['nick'] .'">
  123.          '.$row['nick'] .'|';
  124. }
  125. echo "<table width=\"470\" cellspacing=\"1\" cellpadding=\"1\">";
  126. echo "<tr>";
  127. echo "<td rowspan=\"1\" width=\"80\"style='border:1px solid #808080' >";
  128.             echo $cadena ; // aqui nos aparecera los nombres en cadena y ahy podremoscliquear y elegir
  129.             echo "</td>";
  130.             echo "</tr>";
  131.             echo "</table >";
  132.  
  133. ?>
  134. <br>
  135. <?php echo "<table width=\"470\" cellspacing=\"1\" cellpadding=\"1\">";
  136. echo "<tr>";
  137. echo "<td rowspan=\"2\" width=\"80\"style='border:1px solid #808080' ><b>";
  138.             require ("publi/menu.htm");//esto es solo publicidad tu puedes borrarlo si quieres
  139.             echo "</td>";
  140.             echo "</tr>";
  141.             echo "</table >";
  142. ?>
  143.  
  144. </td>
  145.   </tr>
  146. </table>
  147.  
  148. </body>
  149. </html>
  #3 (permalink)  
Antiguo 02/05/2011, 14:53
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 9 años, 3 meses
Puntos: 55
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Es como los mensajes privados en un foro phpbb o como el chat de facebook, disculpa la pregunta, gracias
  #4 (permalink)  
Antiguo 02/05/2011, 14:55
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Este es el codigo para ver los usuarios conectados. aparece en el primer div del codigo anterior.
taotal_usuarios-conectados.php

Código PHP:
Ver original
  1. <?php
  2. //usuarios conectados
  3. $host = "";
  4. $user = "";
  5. $pase = "";
  6. $bdnombre = "";
  7.  
  8. $conectar = mysql_connect("$host","$user","$pase");
  9. mysql_select_db($bdnombre,$conectar);
  10. $orden = "Select * From usuarios where conectado='si'";
  11. mysql_query("UPDATE usuarios SET fecha='$fecha' WHERE ip='$ip'") ;  
  12. $accion = mysql_query($orden,$conectar);  
  13. $numero = mysql_num_rows($accion);  
  14. echo "  $numero ";
  15. ?>
  #5 (permalink)  
Antiguo 02/05/2011, 14:57
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por waldragon Ver Mensaje
Es como los mensajes privados en un foro phpbb o como el chat de facebook, disculpa la pregunta, gracias
sera como los mensajes de un foro pero lsolo para los usuarios conectados podras ver la foto el nombre y sobra la misma enviarle el mensaje. Luego seguire con lo del chat en la parte inferior de la pg tipo facebook
  #6 (permalink)  
Antiguo 02/05/2011, 15:00
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 9 años, 3 meses
Puntos: 55
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por saraivaruas Ver Mensaje
sera como los mensajes de un fora pero luego seguire con lo del chat en la parte inferior de la pg tipo facebook
Genial, muy buen aporte, sigo el tema para no perderlo de vista, gracias.
  #7 (permalink)  
Antiguo 02/05/2011, 15:03
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Bien aqui va el form. En el codigo de arriba (conecfoto.php) clikearas en el nombre del usuarios que este conectado en el momento las variables o sea el nick y el mail de este usuario se transladaran automaticamente para el form para enviar el mensaje a su buzon de entrada y al mismo tempo al mail registrado.
ahia va .

enviar_mesajes.php


Código PHP:
Ver original
  1. <?php  
  2. require("config.php");
  3. $nickUsuarioL= $_SESSION['nick'];
  4. $action= $_POST['enviar'];
  5.  $maili = $usumail = $_GET["usumail"];
  6.  $row['nick']  . $usumail ;
  7. ?>
  8.  
  9. <html><head>
  10. <script languaje="Javascript">
  11. <!--
  12. function Smile(texto){
  13.  document.form.mensaje.value = document.form.mensaje.value + texto;
  14. }
  15. // -->
  16. </script>
  17. </head><body>
  18.  
  19. <table width="401" height="370" border="0" align="center">
  20.   <tr>
  21.     <td>
  22.  
  23.  
  24.  
  25. <form name="form1"  method="post"  action="privados.php">
  26.  
  27. <table width=415 height="70%" align=center cellpadding=3 cellspacing=1 bgcolor=#003300>
  28.     <tr>
  29.       <td width="55" height="8%" bgcolor=#005900><font size="2"><b><font face="Verdana">De:</font></b></font></td>
  30.       <td bgcolor=#498551 width="268"><input type="hidden" name="de" value="<? echo $nickUsuarioL; ?>"/ ><?php if  ($_SESSION['nick']){
  31. print(" <font face=Tahoma size=2><b>$nickUsuarioL</b>");
  32.     } else { echo " NO ESTAS LOGUEADO";
  33.     } ?></td>
  34.     </tr>
  35.     <tr>
  36.       <td width="55" height="9%" bgcolor=#005900><font face=Tahoma size=2><b>Para:</b></font></td>
  37.       <td bgcolor=#498551 width="268">  
  38.      
  39.             <div align="left">
  40.               <?php
  41.       $dest = $usuario = $_GET["usuario"]; ?>
  42.               <?php  $row['nick']  . $usuario ;?>
  43.               <input type2= hidden name="para" value="<?php echo $dest ?>"/>
  44.               <?php $maili = $mail= $_GET["mail"]; ?>
  45.               <?php  $row['mail']  . $mail ;?>
  46.               <input type3= hidden name="mail" value="<?php echo $maili ?>"/>
  47.             </div></td>
  48.     </tr>
  49.  
  50.     <tr>
  51.       <td width="55" height="9%" bgcolor=#005900><font face=Tahoma size=2><b>Titulo:</b></font></td>
  52.       <td bgcolor=#498551 width="268">
  53.         <input type="text" name="asunto" value="nombre asunto"/></td>
  54.     </tr>
  55.     <tr bgcolor="#498551">
  56.       <td height="7%" colspan=2><font size=2 face=Tahoma>
  57.         <center>
  58.           <b>Mensaje:</b>
  59.         </center>
  60.       </font></td>
  61.     </tr>
  62.     <tr bgcolor="#498551">
  63.       <td height="57%" colspan=2>
  64.         <center>
  65.           <table width="83%" border="0" cellspacing="0" cellpadding="0">
  66.             <tr>
  67.               <td>
  68.                 <textarea name="mensaje" cols="44" rows="7" value="escreva el mensaje">
  69. </textarea>
  70.               </td>
  71.             </tr>
  72.           </table>
  73.           <table width="70%" border="0" cellspacing="0" cellpadding="0">
  74.             <tr>
  75.               <td>
  76.                 <div align="center"><a href="javascript:Smile('[a][/a]')"><img src="ikon/bb1.gif" width="36" height="15" border="0"></a></div>
  77.               </td>
  78.               <td>
  79.                 <div align="center"><a href="javascript:Smile('[citar][/citar]')"><img src="ikon/bb2.gif" width="36" height="15" border="0"></a></div>
  80.               </td>
  81.               <td>
  82.                 <div align="center"><a href="javascript:Smile('')"><img src="ikon/bb3.gif" width="36" height="15" border="0"></a></div>
  83.               </td>
  84.               <td>
  85.                 <div align="center"><a href="javascript:Smile('')"><img src="ikon/bb4.gif" width="36" height="15" border="0"></a></div>
  86.               </td>
  87.               <td>
  88.                 <div align="center"><a href="javascript:Smile('')"><img src="ikon/bb5.gif" width="36" height="15" border="0"></a></div>
  89.               </td>
  90.             </tr>
  91.           </table>
  92.         </center>
  93.         <table width="70%" border="0" cellspacing="3" cellpadding="2" align="center">
  94.           <tr>
  95.             <td>
  96.               <div align="center"><a href="javascript:Smile('[pensando]')"><img src="ikon/1.gif" width="15" height="20" border="0" alt="Pensando"></a></div>
  97.             </td>
  98.             <td>
  99.               <div align="center"><a href="javascript:Smile('[sonriendo]')"><img src="ikon/2.gif" width="15" height="15" border="0" alt="Sonriendo"></a></div>
  100.             </td>
  101.             <td>
  102.               <div align="center"><a href="javascript:Smile('[si]')"><img src="ikon/3.gif" width="15" height="15" border="0" alt="Arriba"></a></div>
  103.             </td>
  104.             <td>
  105.               <div align="center"><a href="javascript:Smile('[no]')"><img src="ikon/4.gif" width="15" height="15" border="0" alt="Abajo"></a></div>
  106.             </td>
  107.             <td>
  108.               <div align="center"><a href="javascript:Smile('[llorando]')"><img src="ikon/5.gif" width="25" height="15" border="0" alt="Llorando"></a></div>
  109.             </td>
  110.             <td>
  111.               <div align="center"><a href="javascript:Smile('[afirmando]')"><img src="ikon/11.gif" width="15" height="15" border="0" alt="Afirmando"></a></div>
  112.             </td>
  113.           </tr>
  114.           <tr>
  115.             <td>
  116.               <div align="center"><a href="javascript:Smile('[censurado]')"><img src="ikon/6.gif" width="15" height="15" border="0" alt="Censura"></a></div>
  117.             </td>
  118.             <td>
  119.               <div align="center"><a href="javascript:Smile('[ojotes]')"><img src="ikon/7.gif" width="15" height="15" border="0" alt="Ojotes"></a></div>
  120.             </td>
  121.             <td>
  122.               <div align="center"><a href="javascript:Smile('[adios]')"><img src="ikon/8.gif" width="25" height="15" border="0" alt="Adios"></a></div>
  123.             </td>
  124.             <td>
  125.               <div align="center"><a href="javascript:Smile('[policia]')"><img src="ikon/9.gif" width="19" height="20" border="0" alt="Policia"></a></div>
  126.             </td>
  127.             <td>
  128.               <div align="center"><a href="javascript:Smile('[carcajeando]')"><img src="ikon/10.gif" width="16" height="19" border="0" alt="Carcajeando"></a></div>
  129.             </td>
  130.             <td>
  131.               <div align="center"><a href="javascript:Smile('[negando]')"><img src="ikon/12.gif" width="15" height="15" alt="Negando" border="0"></a></div>
  132.             </td>
  133.           </tr>
  134.       </table>      </td>
  135.     </tr>
  136.     <tr bgcolor="#005900">
  137.       <td height="10%" colspan="2"><font face=Tahoma size=2><b><?php if  ($_SESSION['nick']){
  138. print(" <font face=Tahoma size=2><b><input type=\"submit\" value=\"Enviar\"</b>");
  139.     } else { echo " Tiene que estar logueado para enviar";
  140.     } ?>
  141.        
  142.         <input type="reset" value="Borrar" name="reset" >
  143.       </b></font> </td>
  144.     </tr>
  145.   </table>
  146. </form>
  147. </td>
  148.   </tr>
  149. </table>
  150. <div align="center"></div>
  151. </body></html>
  #8 (permalink)  
Antiguo 02/05/2011, 15:10
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Aqui va el que procesa la info del form.php o sea el mensaje para enviarlo a la pg que procesa el envio del mail al usuario y depues la inserta a la bd.

privados.php

Código PHP:
Ver original
  1. <?
  2. include("config.php");
  3. include("fecha.php");
  4. require("config.php");
  5.  
  6. $nickUsuarioL= $_SESSION['nick'];
  7. $de= $_POST["de"];
  8. $para= $_POST["para"];
  9. $mail=$_POST['mail'];
  10. $asunto= $_POST["asunto"];
  11. $mensaje= $_POST["mensaje"];
  12.  
  13.  
  14.  
  15. if($de=="$nickUsuarioL"){ //Aki esta la var de nickUsuarioL
  16. echo "<font face=Tahoma size=2><b><center>Te quieres mandar un mensaje tu solo?</b></center>";
  17. }
  18.  if(empty($para)){
  19. echo "<font face=Tahoma size=2><b><center>A quien va el mensaje?</b><br></center>";
  20. }
  21. else if(empty($mensaje)){
  22. echo "<font face=Tahoma size=2><b><center>Y el mensaje?</center></b><br>";
  23. }
  24. else {
  25.  
  26. //QUITAMOS CARACTERES INVALIDOS
  27.     $mensaje = str_replace("<","&lt;",$mensaje);
  28.     $mensaje = str_replace(">","&gt;",$mensaje);
  29.     $mensaje = str_replace('\"',"&quot;",$mensaje);
  30.     $mensaje = str_replace("'","'",$mensaje);
  31.     $mensaje = str_replace("\'","'",$mensaje);
  32.  
  33. //PONEMOS LOS SMILIES AL MENSAJE
  34.     $mensaje = str_replace("[pensando]","<img src=\"ikon/1.gif\">",$mensaje);
  35.     $mensaje = str_replace("[sonriendo]","<img src=\"ikon/2.gif\">",$mensaje);
  36.     $mensaje = str_replace("[si]","<img src=\"ikon/3.gif\">",$mensaje);
  37.     $mensaje = str_replace("[no]","<img src=\"ikon/4.gif\">",$mensaje);
  38.     $mensaje = str_replace("[llorando]","<img src=\"ikon/5.gif\">",$mensaje);
  39.     $mensaje = str_replace("[afirmando]","<img src=\"ikon/6.gif\">",$mensaje);
  40.     $mensaje = str_replace("[censurado]","<img src=\"ikon/7.gif\">",$mensaje);
  41.     $mensaje = str_replace("[ojotes]","<img src=\"ikon/8.gif\">",$mensaje);
  42.     $mensaje = str_replace("[adios]","<img src=\"ikon/9.gif\">",$mensaje);
  43.     $mensaje = str_replace("[policia]","<img src=\"ikon/10.gif\">",$mensaje);
  44.     $mensaje = str_replace("[carcajeando]","<img src=\"ikon/11.gif\">",$mensaje);
  45.     $mensaje = str_replace("[negando]","<img src=\"ikon/12.gif\">",$mensaje);
  46.  
  47. //PONEMOS LOS BBCODE
  48.     $mensaje = str_replace("[ b]","<b>",$mensaje); //modifica kitando el espacio,, x k si no los reproduce en los foros ;)
  49.     $mensaje = str_replace("[ /b]","</b>",$mensaje);
  50.     $mensaje = str_replace("[ i]","<i>",$mensaje);
  51.     $mensaje = str_replace("[ /i]","</i>",$mensaje);
  52.     $mensaje = str_replace("[ u]","<u>",$mensaje);
  53.     $mensaje = str_replace("[ /u]","</u>",$mensaje);
  54.  
  55.     $mensaje = str_replace("[citar]","<table width=80% bgcolor=black align=center cellspacing=1 cellpadding=2><tr><td bgcolor=#eeeeee><font face=tahoma size=1><b>Citando:</b><br>",$mensaje);
  56.     $mensaje = str_replace("[/citar]","</td></tr></table>",$mensaje);
  57.  
  58.     $mensaje = preg_replace("#\[a](.*?){1}\[/a]#", "<a href=\"$1\" target=\"_blank\"><B>$1</B></A>", $mensaje);
  59.  
  60. //CERRAMOS E INTRODUCIOMOS TODO A LA BD MYSQL
  61.  
  62.  
  63. $leido= "0";
  64. mysql_query("INSERT INTO mensajes (de,para,asunto,mensaje,fecha,leido) VALUES
  65. ('$de','$para','$asunto','$mensaje','$fecha2','$leido')");
  66. require("enviar_datos.php");// Esta pagina la quise hacer aparte por si necesito hacer modificaciones en el mensaje que quiero que llegue a los usuarios
  67.  
  68. echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"enviar_mensajes.php\";</SCRIPT>";
  69.  
  70. }
  71.  
  72. ?>
  #9 (permalink)  
Antiguo 02/05/2011, 15:18
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Aqui procesaremos la info y la enviaremos al mail del usuario para que el sepa que tiene un mensaje en su buzon en nuestra web.

enviar_datos.php


Código PHP:
Ver original
  1. <?php
  2. $mail=$_POST['mail'];
  3. $de= $_POST["de"];
  4. $para= $_POST["para"];
  5. $mail=$_POST['mail'];
  6. $asunto= $_POST["asunto"];
  7. $mensaje= $_POST["mensaje"];
  8. // Configura los datos de tu cuenta
  9. $dbhost='localhost';
  10. $dbusername='';
  11. $dbuserpass='';
  12. $dbname='';
  13. // Conexión a la base de datos
  14. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  15. mysql_select_db($dbname) or die("Cannot select database");
  16.       // Seleccionamos el email de la base de datos para verificar
  17.     $result = @mysql_query("SELECT * FROM usuarios WHERE mail='$mail'");
  18.     if (!$result) {
  19.       echo("<p>Error al seleccionar tabla: " . mysql_error() . "</p>");
  20.       exit();
  21.     }
  22.    //Chekeamos si existe el email
  23.  $sql_check_num = mysql_num_rows($result);
  24.    if($sql_check_num == 1){
  25.     //si no te aperce el email del que puso  ej: $email prueba con ".$_POST['email']."
  26.         echo "<table width='300'>
  27.         <tr>
  28.         <td>
  29.         <font color=ff0000 face=verdana>  El e-mail  <b > $mail </b><br>
  30.         no fue encontrado en nuestra base de datos</font><br />
  31.        <center>
  32.        <p>
  33.        <form action=\"enviar_datos.php\" method=\"post\">
  34.        Intente de nuevo: <input type=\"text\" name=\"email\">
  35.        <input type=\"submit\" value=\"Enviar\" name=\"go\">
  36.        </form>
  37.        </p></center></td><tr></table>";
  38.  
  39.         exit();
  40.  
  41.     }
  42.     // Si va todo bien sacamos todo de la base de datos
  43.     while ( $row = mysql_fetch_array($result) ) {
  44.  
  45.       $mail = $row['mail'];
  46.       $nick = $row['nick'];
  47.      
  48.     }
  49.       // creamos el email  
  50.    
  51. $mensaje = "Hola   $para  has recibido un mensaje del usuario $de de nuestra web Esquina do Samba. Puedes revisarlo haciendo clic en este link: http://www.miweb.con/enviar_mensajes.php.
  52. Pero acuerdese que para leer su mensajes tiene que estar logueado..
  53.  
  54. Saludos!   "
  55. ;
  56.  
  57.  
  58. $email_webmaster = "[email protected]";
  59. $asunto = "$para has recibido un mensaje privado en su Buzon de usuario de mi web.com";
  60.  
  61.  
  62.  
  63.  
  64. mail($mail,$asunto,$mensaje,"FROM: $email_webmaster");
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. ?>
  #10 (permalink)  
Antiguo 02/05/2011, 15:21
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

aqui podremos ver los mensajes que tendremos en nuestro buzon de entrada. Y cliqueando en el nobre del mensaje lo podremos leer.

mensajes_recibidos.php

Código PHP:
Ver original
  1. <?php
  2. require("config.php");
  3. $nickUsuarioL= $_SESSION['nick'];
  4. $accion= $_POST['accion'];
  5.  
  6.   //conexion a la BD MYSQL
  7. if($accion == "borrar"){
  8.  
  9. require("config.php");
  10.  
  11. $SQLborrar = "DELETE FROM mensajes WHERE msgid IN(".implode(', ', $_POST['mens']).")";  
  12. mysql_query($SQLborrar);
  13.  
  14. echo "<font face=\"Tahoma\" size=\"2\"><b>Mensaje Borrado</b>";
  15.  
  16. } else {
  17.  
  18. $sql= mysql_query("SELECT * FROM mensajes WHERE para = '".mysql_real_escape_string($nickUsuarioL)."' ORDER by msgid DESC"); //aki esta la var del sistema de JLMM
  19.  
  20. while ($row = mysql_fetch_array($sql) ){
  21.  
  22. $asunte = $row['asunto'];
  23. $resto = substr("$asunte", 0, 40);
  24. $aydi = $row['msgid'];
  25.  
  26. ?><body bgcolor="#C0C000">
  27. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="2">
  28. <table width="391" border="1" cellpadding="0" cellspacing="0" bordercolor="#498551" bgcolor="#C0C000">
  29. <tr>
  30. <td bgcolor="#C0C000" width="48">
  31.   <div align="center"><font face="Tahoma" size="1">
  32.     <input type="checkbox" name="mens[]" value="<?php echo $aydi; ?>">
  33.   </font></div></td>
  34. <td width="82" bgcolor="#C0C000"><font face="Tahoma" color="black" size="1">
  35. <center><i><?php echo $row["de"]; ?></i></center>
  36. </font></td>
  37. <td width="120" bgcolor=#C0C000>
  38.   <div align="center"><a href="leer_mensajes.php<?php echo '?id= '.$row['msgid'] . ''; ?>" target="_parent">
  39.     <font face="Tahoma" color="black" size="1"><u><?php echo "$resto.."; ?></u></font></a></div></td>
  40. <td bgcolor="#C0C000" width="148"><div align="center"><font face="Tahoma" color="black" size="1"><?php echo $row["fecha"]; ?></font></div></td>
  41. </tr>
  42. </table>
  43. <?php
  44. }
  45. ?>
  46. <br>
  47. <table width="214" align="center" cellpadding="2" cellspacing="2" bgcolor="#C0C000">
  48.     <tr>
  49.     <td width="102"><input type="radio" name="accion" value="borrar"><font face="Tahoma" size="1"> Borrar</font></td>
  50.     <td width="20">
  51. </td>
  52.  
  53.     <td width="190"><input type="submit" value="Borrar"></td>
  54.     </tr>
  55. </table>
  56. </form>
  57.  
  58. <?php
  59. }
  60. ?>
  #11 (permalink)  
Antiguo 02/05/2011, 15:25
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Aqui es donde leeremos el mesaje seleciondo en el codigo anterior.

leer-mensajes1.php

Código PHP:
Ver original
  1. <?
  2. require("config.php");// CONEXION A LA BD MYSQL
  3. $nickUsuarioL= $_SESSION['nick'];
  4.  
  5.  
  6.  
  7. $sql= mysql_query("SELECT * FROM mensajes WHERE msgid = '$id' AND para = '$nickUsuarioL'"); //aki esta la var de nickUsuarioL
  8.  
  9. while ($row = mysql_fetch_array($sql) ){
  10. $sql2 = mysql_query("UPDATE mensajes SET leido='1' WHERE  msgid = ".$row[msgid]."");
  11.  
  12. echo "<table bgcolor=black cellspacing=1 cellpadding=2 width=410 border=0 align=left>
  13. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>De:</b></td>
  14. <td bgcolor=#498551><font face=tahoma size=2>".$row[de]."</td></tr>
  15. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Asunto:</b>
  16. <td bgcolor=#498551><font face=tahoma size=2>".$row[asunto]."</td></tr>
  17. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Mensaje:</b>
  18. <td bgcolor=#498551><font face=tahoma size=2>".$row[mensaje]."</td></tr>
  19.  
  20. </table>";
  21.  
  22. }
  23. ?>
  #12 (permalink)  
Antiguo 02/05/2011, 15:28
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

aQUI TENDREMOS NUESTRO BUZON DE SALIDA

leer_mensajes3.php

Código PHP:
Ver original
  1. <?php
  2. require("config.php");
  3. $nickUsuarioL= $_SESSION['nick'];
  4. $accion= $_POST['accion'];
  5.  
  6.   //conexion a la BD MYSQL
  7. if($accion == "borrar"){
  8.  
  9. require("config.php");
  10.  
  11. $SQLborrar = "DELETE FROM mensajes WHERE msgid IN(".implode(', ', $_POST['mens']).")";  
  12. mysql_query($SQLborrar);
  13.  
  14. echo "<font face=\"Tahoma\" size=\"2\"><b>Mensaje Borrado</b>";
  15.  
  16. } else {
  17.  
  18. $sql= mysql_query("SELECT * FROM mensajes WHERE de = '".mysql_real_escape_string($nickUsuarioL)."' ORDER by msgid DESC"); //aki esta la var del sistema de JLMM
  19.  
  20. while ($row = mysql_fetch_array($sql) ){
  21.  
  22. $asunte = $row['asunto'];
  23. $resto = substr("$asunte", 0, 40);
  24. $aydi = $row['msgid'];
  25.  
  26. ?><body bgcolor="#C0C000">
  27. <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="2">
  28. <table width="395" border="1" cellpadding="0" cellspacing="0" bordercolor="#498551" bgcolor="#C0C000">
  29. <tr>
  30. <td bgcolor="#C0C000" width="45">
  31.   <div align="center"><font face="Tahoma" size="1">
  32.     <input type="checkbox" name="mens[]" value="<?php echo $aydi; ?>">
  33.   </font></div></td>
  34. <td width="89" bgcolor="#C0C000"><font face="Tahoma" color="black" size="1">
  35. <center><i><?php echo $row["para"]; ?></i></center>
  36. </font></td>
  37. <td width="109" bgcolor=#C0C000>
  38.   <div align="center"><a href="http:leer_mensajes4.php<?php echo '?id= '.$row['msgid'] . ''; ?>" target="_parent">
  39.     <font face="Tahoma" color="black" size="1"><u><?php echo "$resto.."; ?></u></font></a></div></td>
  40. <td bgcolor="#C0C000" width="142"><div align="center"><font face="Tahoma" color="black" size="1"><?php echo $row["fecha"]; ?></font></div></td>
  41. </tr>
  42. </table>
  43. <?php
  44. }
  45. ?>
  46. <br>
  47. </form>
  48.  
  49. <?php
  50. }
  51. ?>
  #13 (permalink)  
Antiguo 02/05/2011, 15:30
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Este sera nuestro buzon de salida por si queremos revisar los mensajes que enviamos

leer_mesajes4.php
Código PHP:
Ver original
  1. <?
  2. require("config.php"); // CONEXION A LA BD MYSQL
  3. $nickUsuarioL= $_SESSION['nick'];
  4.  
  5.  
  6.  
  7. $sql= mysql_query("SELECT * FROM mensajes WHERE msgid = '$id' AND de = '$nickUsuarioL'"); //aki esta la var de nickUsuarioL
  8.  
  9. while ($row = mysql_fetch_array($sql) ){
  10.  
  11.  
  12. echo "<table bgcolor=black cellspacing=1 cellpadding=2 width=410 border=0 align=left>
  13. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Para:</b></td>
  14. <td bgcolor=#498551><font face=tahoma size=2>".$row[para]."</td></tr>
  15. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Asunto:</b>
  16. <td bgcolor=#498551><font face=tahoma size=2>".$row[asunto]."</td></tr>
  17. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Mensaje:</b>
  18. <td bgcolor=#498551><font face=tahoma size=2>".$row[mensaje]."</td></tr>
  19. </table>";
  20.  
  21. }
  22. ?>
  #14 (permalink)  
Antiguo 02/05/2011, 15:32
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por saraivaruas Ver Mensaje
Este sera nuestro buzon de salida por si queremos revisar los mensajes que enviamos

leer_mesajes4.php
Código PHP:
Ver original
  1. <?
  2. require("config.php"); // CONEXION A LA BD MYSQL
  3. $nickUsuarioL= $_SESSION['nick'];
  4.  
  5.  
  6.  
  7. $sql= mysql_query("SELECT * FROM mensajes WHERE msgid = '$id' AND de = '$nickUsuarioL'"); //aki esta la var de nickUsuarioL
  8.  
  9. while ($row = mysql_fetch_array($sql) ){
  10.  
  11.  
  12. echo "<table bgcolor=black cellspacing=1 cellpadding=2 width=410 border=0 align=left>
  13. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Para:</b></td>
  14. <td bgcolor=#498551><font face=tahoma size=2>".$row[para]."</td></tr>
  15. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Asunto:</b>
  16. <td bgcolor=#498551><font face=tahoma size=2>".$row[asunto]."</td></tr>
  17. <tr><td bgcolor=#CCCCCC width=80><font face=Tahoma size=2><b>Mensaje:</b>
  18. <td bgcolor=#498551><font face=tahoma size=2>".$row[mensaje]."</td></tr>
  19. </table>";
  20.  
  21. }
  22. ?>
Bien pues!!!

ahi esta el aporte ...Como dijhe antes no soy muy bueno en eso ai que espro ayudemosnos mutuamente mejorando este aporte y espero que sirva para todos luego aportare con el chat.

saludos!!!
  #15 (permalink)  
Antiguo 02/05/2011, 16:04
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 9 años, 3 meses
Puntos: 55
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Muy bueno, yo habia hecho algo asi pero no tan complejo, y me habia faltado lo de mostrar los usuarios conectados para mandarles mensajes.

Pero creo que te falta explicar que hay que cambiar el valor conectado en la tabla usuarios

en el codigo de ingreso pones:

//modificar conectado en la tabla del usuario
$conectado=1;
$sql = "UPDATE users SET conectado = '". $conectado . "' WHERE id=" . $_SESSION['USERID']. ";";
mysql_query($sql);

y en el de salida:

//modificar conectado en la tabla del usuario
$conectado=0;
$sql = "UPDATE users SET conectado = '". $conectado . "' WHERE id=" . $_SESSION['USERID']. ";";
mysql_query($sql);

Yo lo hice con 0 y 1
  #16 (permalink)  
Antiguo 02/05/2011, 16:28
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por waldragon Ver Mensaje
Muy bueno, yo habia hecho algo asi pero no tan complejo, y me habia faltado lo de mostrar los usuarios conectados para mandarles mensajes.

Pero creo que te falta explicar que hay que cambiar el valor conectado en la tabla usuarios

en el codigo de ingreso pones:

//modificar conectado en la tabla del usuario
$conectado=1;
$sql = "UPDATE users SET conectado = '". $conectado . "' WHERE id=" . $_SESSION['USERID']. ";";
mysql_query($sql);

y en el de salida:

//modificar conectado en la tabla del usuario
$conectado=0;
$sql = "UPDATE users SET conectado = '". $conectado . "' WHERE id=" . $_SESSION['USERID']. ";";
mysql_query($sql);

Yo lo hice con 0 y 1
HOLA Waldrgon!
esta esla segunda parte del sistema la primera esta aqui en este aporte explico lo del usuario conectado http://www.forosdelweb.com/f18/aport...ajeria-909020/
en la parte del registro.php lo inserto asi con los otros datos:

Código PHP:
Ver original
  1. $date=date("Y-m-d H");
  2.             $timestamp = time();
  3.             $nick= limpiar($_POST['nick']);
  4.             $mail= limpiar($_POST['mail']);
  5.             $pass= limpiar($_POST['pass']);
  6.             $ipuser= $_SERVER['REMOTE_ADDR'];            
  7.             $conectado= 'no';
  8.             $imagen='perfil.gif';

y en el login.php lo actualizo

Código PHP:
Ver original
  1. $orden = ("select * from usuarios where id = ". $_SESSION['id'] ."");
  2.  mysql_query("UPDATE  usuarios SET  conectado='si' where id = ". $_SESSION['id'] ."") ;

Hecha un vistazo quizas me puedas ayudar a mejorarlo y simplificarlo:
Saludos amigo!

Última edición por saraivaruas; 02/05/2011 a las 16:40
  #17 (permalink)  
Antiguo 02/05/2011, 16:45
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por saraivaruas Ver Mensaje
el codigo para la selecion del los datos del usuario s que queremos enviar los mensajes internos...

Ahi va :

conecfot.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Usuarios en linea ahora</title>
  5. <meta name="description" content="Easiest jQuery Tooltip Ever">
  6. <script src="jquery.js" type="text/javascript"></script>
  7. <script src="main.js" type="text/javascript"></script>
  8. </meta>
  9.  
  10.  
  11. <style>
  12. body {
  13.     margin:0;
  14.     padding:0px;
  15.     background:#fff;
  16.     font:80% Arial, Helvetica, sans-serif;
  17.     color:#555;
  18.     line-height:180%;
  19.     background-color: #004000;
  20.    
  21. }
  22.  
  23. h1{
  24.     font-size:180%;
  25.     font-weight:normal;
  26.     color:#555;
  27. }
  28. h2{
  29.     clear:both;
  30.     font-size:160%;
  31.     font-weight:normal;
  32.     color:#555;
  33.     margin:0;
  34.     padding:.5em 0;
  35. }
  36. a{
  37.     text-decoration:none;
  38.     color:#f30;
  39.     font-family: Comic Sans MS;
  40. }
  41. p{
  42.     clear:both;
  43.     margin:0;
  44.     padding:.5em 0;
  45. }
  46. pre{
  47.     display:block;
  48.     font:100% "Courier New", Courier, monospace;
  49.     padding:10px;
  50.     border:1px solid #bae2f0;
  51.     background:#e3f4f9;
  52.     margin:.5em 0;
  53.     overflow:auto;
  54.     width:800px;
  55.    
  56. }
  57.  
  58. img{border:none;}
  59. ul,li{
  60.     margin:0;
  61.     padding:0;
  62. }
  63. li{
  64.     list-style:none;
  65.     float:left;
  66.     display:inline;
  67.     margin-right:0px;
  68. }
  69.  
  70.  
  71.  
  72. /*  */
  73.  
  74. #screenshot{
  75.     position: absolute;
  76.     z-index:1;
  77.     border:1px solid #ccc;
  78.     background:#333;
  79.     padding:5px;
  80.     display:none;
  81.     color:#fff;
  82.     }
  83.  
  84. /*  */
  85. body,td,th {
  86.     font-family: Comic Sans MS;
  87.     color: #000000;
  88.     font-size: 12px;
  89. }
  90. a:link {
  91.     color: #0000FF;
  92. }
  93. a:visited {
  94.     color: #0000FF;
  95. }
  96. </style>
  97. </head>
  98. <body>
  99. <table border="0" align="center" bgcolor="#C0C000">
  100.   <tr>
  101.     <td valign="top">
  102. <?php echo "<table width=\"470\" cellspacing=\"1\" cellpadding=\"1\">";
  103. echo "<tr>";
  104. echo "<td rowspan=\"2\" width=\"80\"style='border:1px solid #808080' >";
  105.             echo '<b> Total de usuarios conectados</b>'; require ("Usuarios/total_usuarios_conectados.php");//veremos la cantidad de usuarios on line en este momento
  106.             echo "</td>";
  107.             echo "</tr>";
  108.             echo "</table >";  
  109.             ?>
  110. <?php
  111. // selecionaremos los datos que necesitamos y inprimiremos solo los logueados
  112. //los que tengan como valor el "si" que significa que estan logueados en este momento.
  113.  
  114. $result=mysql_query("select * from usuarios  where  conectado='si' order by id asc ");
  115. $cadena="";
  116. while($row=mysql_fetch_array($result))
  117. {
  118. $cadena=$cadena.
  119. '<a href= "/enviar_mensajes.php?usuario='.$row['nick'] .'&mail= '. $row['mail'] .'"
  120.  class="screenshot"
  121.  rel=" http://www.esquinadosamba.cl/Usuarios1/imagenes/thumbnails/'. $row[imagen]. '
  122.  "title="Envie un mensaje a<br> '.$row['nick'] .'">
  123.          '.$row['nick'] .'|';
  124. }
  125. echo "<table width=\"470\" cellspacing=\"1\" cellpadding=\"1\">";
  126. echo "<tr>";
  127. echo "<td rowspan=\"1\" width=\"80\"style='border:1px solid #808080' >";
  128.             echo $cadena ; // aqui nos aparecera los nombres en cadena y ahy podremoscliquear y elegir
  129.             echo "</td>";
  130.             echo "</tr>";
  131.             echo "</table >";
  132.  
  133. ?>
  134. <br>
  135. <?php echo "<table width=\"470\" cellspacing=\"1\" cellpadding=\"1\">";
  136. echo "<tr>";
  137. echo "<td rowspan=\"2\" width=\"80\"style='border:1px solid #808080' ><b>";
  138.             require ("publi/menu.htm");//esto es solo publicidad tu puedes borrarlo si quieres
  139.             echo "</td>";
  140.             echo "</tr>";
  141.             echo "</table >";
  142. ?>
  143.  
  144. </td>
  145.   </tr>
  146. </table>
  147.  
  148. </body>
  149. </html>
Para saber como hacer con la parte del usuario conectado revisa este aporte http://www.forosdelweb.com/f18/aport...ajeria-909020/ la parte del registrado.php y login.php
  #18 (permalink)  
Antiguo 02/05/2011, 16:49
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

bueno me habia faltado la parte donde cada usuarios puede ver cuantos mensaje nuevos tienen en su buzon
Esta parte la puedes ponar en en pèrfil del usuario para que el sepa cuantos mensajes nuevos tiene

mensajes_ nuevos.php

Código PHP:
Ver original
  1. <?php
  2. require("config.php");
  3.  // CONEXION A LA BD MYSQL
  4. $nickUsuarioL= $_SESSION['nick'];
  5. $i = 1;
  6. $nuevos = 0;
  7.  
  8. $query = mysql_query ("SELECT * FROM mensajes order by fecha DESC");
  9.  
  10. while ( $row = mysql_fetch_array($query) ) {
  11.  
  12.     if ( $row['para'] == $nickUsuarioL ) { //$NICK significa el valor de la sesion del usuario o la cookie..
  13.  
  14. if ( $row[leido] < 1 ) {
  15.     $nuevos = $nuevos +1;
  16. }
  17.  
  18. if ( $row[leido] < 1 ) {
  19.     $mensajesnuevos .= "</B>";
  20. }
  21.  
  22.     $tiene = "Si";
  23.     $i = $i+1;
  24.     }
  25.  
  26.  
  27. }
  28.  
  29. if ( $nuevos == 0 ) {
  30. $nuevos = "Ninguno";
  31. }
  32.     if ( $tiene != "Si" ) {
  33.  
  34.     echo "<font size='1' face=Tahoma>No tienes mensajes ";//$NICK significa el valor de la sesion del usuario o la cookie..
  35.  
  36.     }
  37.     else {
  38.     $j = $i -1;
  39.     echo "<font size='1' face=Tahoma> $nickUsuarioL  tienes <b> $j </b> mensajes en total. <br> <B> $nuevos </b> son nuevos .";
  40.  
  41.     }
  42. ?>
  #19 (permalink)  
Antiguo 04/05/2011, 10:34
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 9 años, 3 meses
Puntos: 55
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Muy bueno, ya lo use en una web que estoy haciendo, solo que yo hice que se muestre en la cabecera de toda la web, si hay mensajes nuevos y cuantos hay,
veo un error que no se como solucionarlo:
-Al mostrar los usuarios conectados muestra los que han modificado "conectado" al conectarse, y deja de mostrarlos cuando estos usuarios se van usando logout.php, pero que pasa si alguien se va simplemente cerrando el navegador o por un corte de luz o algo por el estilo? si algo de eso pasara el link del usuario conectado se seguiria mostrando, como si estuviera, como podemos solucionar eso?

gracias.
  #20 (permalink)  
Antiguo 04/05/2011, 14:20
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por waldragon Ver Mensaje
Muy bueno, ya lo use en una web que estoy haciendo, solo que yo hice que se muestre en la cabecera de toda la web, si hay mensajes nuevos y cuantos hay,
veo un error que no se como solucionarlo:
-Al mostrar los usuarios conectados muestra los que han modificado "conectado" al conectarse, y deja de mostrarlos cuando estos usuarios se van usando logout.php, pero que pasa si alguien se va simplemente cerrando el navegador o por un corte de luz o algo por el estilo? si algo de eso pasara el link del usuario conectado se seguiria mostrando, como si estuviera, como podemos solucionar eso?

gracias.


Hola waldragon!

Este error ya lo habia vistotambien me quede con la misma duda que tienes ahora..
La veradad es que como se cambia a conectado en la base de datos cuando el usuario hace el login si el se va de la pagina cerrando el navegador sin pasar por el boton de log out seguira como se estuviera conectado o sea lo veremos como conewctado y podremos enviarle mensajes y todos lo demas sin embargo, su sesion cierra y si el usuario vuelve aentrar despues en nuestra web tiene que volver a hacer el login...
He pensado hacer el deslogueo atraves del ajax, pero no lo he elaborado aun cosa de que cuando el usuario se vaya del dominio se cierre la sesion. o la otra es simplemente por crowjob. si conoces alguna manera hagamos juntos un scripts por que he visto que hay mucha gente que iene este mismo problema..

busquemos primero con ajax..

Última edición por saraivaruas; 04/05/2011 a las 14:33
  #21 (permalink)  
Antiguo 04/05/2011, 14:33
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Aqui tengo algo que hice anteriormente mescalado con javascript pero no me funciona 100% por eso lo saque pero podriamos partir de aqui.

Código PHP:
Ver original
  1. <?php
  2. //usuarios conectados
  3. $host = "localhost";
  4. $user = "";
  5. $pase = "";
  6. $bdnombre = "";
  7.  
  8.  
  9. $conectar = mysql_connect("$host","$user","$pase");
  10. mysql_select_db($bdnombre,$conectar);  
  11. $orden = ("select * from usuarios where id = ". $_SESSION['id'] ."");
  12.  mysql_query("UPDATE  usuarios SET  conectado='0' where id = ". $_SESSION['id'] ."") ;  
  13.  
  14.  
  15. echo "Te olvidaste cerrar tu sesion, pero no te preocupes yo la cerrare por ti.
  16. Abrazos y cuidate!  Gracias por venir a verme! ";"";
  17. ?>
  18. <META HTTP-EQUIV="Refresh" CONTENT="0;URL=/acceso_al_vip.php">

Última edición por saraivaruas; 04/05/2011 a las 14:39
  #22 (permalink)  
Antiguo 04/05/2011, 23:18
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

saraivaruas, buen aporte, aunque hay cosas que no acaban de convencerme como:

1. Uso de short tags <? en lugar de <?php
2. No escapas los datos antes de ingresarlos a una consulta; usa mysql_real_escape_string()
3. Uso de HTML no estandar, ya sea por etiquetas (o sus atributos) en mayusculas o etiquetas obsoletas como <font />
4. El uso de tablas tampoco me parece adecuado, al menos se podria usar solo para el listado de mensajes y el resto (formulario y leer mensaje) con CSS.

Ahora, sobre lo de los usuarios en linea, tal vez si agregas un campo a la tabla de usuarios donde almacenes fecha y hora de ultima actividad, solo necesitarias leer los que hayan tenido actividad en los ultimos X minutos.
__________________
- León, Guanajuato
- GV-Foto
  #23 (permalink)  
Antiguo 05/05/2011, 05:22
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 8 años, 11 meses
Puntos: 10
Respuesta: Aporte sistema de mensajeria interna con usuarios conectados

Cita:
Iniciado por Triby Ver Mensaje
saraivaruas, buen aporte, aunque hay cosas que no acaban de convencerme como:

1. Uso de short tags <? en lugar de <?php
2. No escapas los datos antes de ingresarlos a una consulta; usa mysql_real_escape_string()
3. Uso de HTML no estandar, ya sea por etiquetas (o sus atributos) en mayusculas o etiquetas obsoletas como <font />
4. El uso de tablas tampoco me parece adecuado, al menos se podria usar solo para el listado de mensajes y el resto (formulario y leer mensaje) con CSS.

Ahora, sobre lo de los usuarios en linea, tal vez si agregas un campo a la tabla de usuarios donde almacenes fecha y hora de ultima actividad, solo necesitarias leer los que hayan tenido actividad en los ultimos X minutos.


Hola triby!
si tambien habia pensado en simplificar y actualiar algunas cosas visto que este fue uno de los primeros scripts que hice..Me gusta la idea del Formulario y leer mensajes en css.

pense en usar el campo timestamp que ya me marca el tiempo de la ultima visita del usuario.
bueno seria ideal que pudieramos compartir alguna ideas mas...
si puedes publicas alguas de las lineas que cambiarias...
y vamos mejorandolo.

saludos y gracias por las observaciones amigo.

Etiquetas: conectados, mensajeria, sistema, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:25.