Foros del Web » Programando para Internet » PHP »

Mensajería Interna

Estas en el tema de Mensajería Interna en el foro de PHP en Foros del Web. Buenas,yo quiero hacer un sistema de mensajes internos... es decir,que X usuario le pueda mandar un mensaje a otro,se entiende lo que quiere decir? y ...
  #1 (permalink)  
Antiguo 14/07/2005, 13:57
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Mensajería Interna

Buenas,yo quiero hacer un sistema de mensajes internos... es decir,que X usuario le pueda mandar un mensaje a otro,se entiende lo que quiere decir? y este otro usuario (siempre,dentro del mismo site),este otro usuario,lo recive y lo puede responder...

Creo que por acá,en foros del web,encontré este link..

http://php-hispano.net/archivos/Scripts/101/1

que supuestamente me permitiría hacer esto que yo quiero hacer...

Bueno después de cambiar los datos,y personalizarlo,es decir,me quedó y funciona... NO PUEDO HACER QUE ENVIE ,NI QUE RECIVA LOS MENSAJES LOS OTROS USUARIOS.!

Fijensé cómo me quedó:

vmsg.php :

Código:
<?php 

// El config estaran los datos del MySQL y conectara al MySQL. 
include("config.php"); 
print("<body bgcolor=#009900 text=#FFFFFF link=#FFFFFF>");
// Buscamos si el usuario esta logueado i si es valido. 
$a=mysql_query("SELECT codigo FROM usuarios WHERE username='".addslashes(strip_tags($_SESSION['Username']))."' && codigo ='".addslashes(strip_tags($_SESSION['Codigousuario']))."'"); 
$r=mysql_fetch_row($a); 

// Si esta logueado: 
if($r == 0){

if($_GET[d]) { // Esto pasara  cuando quieras borrar uno de tus memos. 
    $query = mysql_query("select id_user from users_m where id='$_GET[d]'"); 
    $resp=mysql_fetch_row($query); 

    // Comprobamos que el memo que quiere borrar es del el. 
    if($resp[0] == $r[0]) { mysql_query("DELETE FROM users_m WHERE id='$_GET[d]'"); } 
} 

// Seleccionamos todos los memos de el usuario logueado. 
$query = "select * from users_m where id_user='$r[0]' order by fecha desc";  
$resp = mysql_query($query);  

// Ponemos el numero de campos seleccionados. 
$num = mysql_num_rows($resp); 

echo"<center>"; 

while ($mensaje = mysql_fetch_array($resp)) { // Ejecutamos este bucle para poner todos los memos del usuario 
    // Ponemos la fecha en formato dia/mes/año 
    $time = date("d/m/y", $mensaje[fecha]); 

    // Quitamos los codigos html 
    $msg = strip_tags($mensaje[msg]); 
    // Ponemos el memo a la vista en la web. 
    echo "$msg<br>Enviado por: $mensaje[autor] el $time «» <font color=\"#FF0000\">"; 
    echo"<a href=\"vmsg.php?d=$mensaje[id]\">Borrar</a></font><br><br>"; 
} 
// SI no tiene ningun memo saldra esto: 
if(!$num) { echo"<br>Actualmente,no tienes ningun mensaje,revisa este sector cada tanto,uno nunca sabe cuando puede recivir un mensaje nuevo...<br><br>"; } 

// Creamos un form 
echo"<br><form method=\"POST\" action=\"addvmsg.php\">"; 
// Ponemos Nick: y ponemos un input hidden que sera el nick del autor 
echo"<br>Nick:<input type=\"hidden\" name=\"autor\" size=\"20\" value=\"$_SESSION[Username]\"> <br>"; 
// Creamos el combo 
echo"<select size=\"1\" name=\"paquien\">"; 

// Pondremos en un combo todos los users registrados. 
$query = "select * from usuarios order by username desc";  
$resp = mysql_query($query);  

while ($am = mysql_fetch_array($resp)) {  
    // Ponemos el user en el combo 
    echo"<option>$am[username]</option>"; 
} 

// Cerramos el combo 
echo"</select><br>"; 
// Ponemos un espacio para poner el mensaje 
echo"Mensaje:<br><textarea rows=\"2\" name=\"msg\" cols=\"20\"></textarea><br>"; 
// Ponemos el boton de enviar y cerramos la form. 
echo"<br><input type=\"submit\" value=\"Enviar!\" name=\"send\"></form>"; 

} 
// SI no esta logueado le saldra el error. 
else { 
    echo"Tu no tienes acceso a esta zona,logeate e intenta nuevamente..."; 
} 

// Cerramos la conexion MySQL. 
mysql_close($con); 

?>


addvmsg.php :

Código:
<?php 

// El config estaran los datos del MySQL y conectara al MySQL. 
include("config.php"); 

// Seleccionamos el id del usuario a quien se le enviara el memo 
$a=mysql_query("SELECT codigo FROM usuarios WHERE username='$_POST[paquien]'");  
$r=mysql_fetch_row($a); 

// Si estan todos los datos 
if(($_POST[msg]) && ($_POST[autor]) && ($_POST[paquien])) { 
    // Ponemos la hora. 
    $time = time(); 
    // Insertamos los datos a la tabla. 
$query = "INSERT INTO users_m (id_user,fecha,msg,autor) VALUES ('$r[0]','$time','$_POST[msg]','$_POST[autor]\)";
    mysql_query($query); 
} 

// Cerramos la conexion MySQL. 
mysql_close($con); 

// VOlvemos a la pagina que nos trajo aqui. 
echo "<script>window.location='vmsg.php';</script>";

?>

Esos serían los scripts de mensajeria.. pero dejo unos datos,útiles que poray les sirva como referencia... el config.php que es el archivo de conexion :

<?php
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "Tryman";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>


Y el archivo de ingreso (porque nada mas,pueden usar este sistema,los usuarios registrados) ingresar.php

Código:
<?php
session_start(); 
print("<body bgcolor=#009900 text=#FFFFFF link=#FFFFFF>");
require_once("conexion.php");
$Query = mysql_query("SELECT * FROM usuarios WHERE username='".addslashes(strip_tags($_POST['User']))."' && user_password ='".addslashes(strip_tags($_POST['Password']))."'"); 
$Q_num = mysql_num_rows($Query);
if($Q_num == 1){
	$data = mysql_fetch_array($Query);
	$_SESSION['username'] = strip_tags($_POST['User']);
	$_SESSION['Auth'] = "YES" ;
	$_SESSION["codigoUsuario"] = $data["codigo"];
	echo "<script>window.location='default.php';</script>";
exit;
} else {
	$_SESSION['Auth'] = "NO" ;
    echo("Usuario / Clave no son válidos, intente de nuevo...");
}
?>


Quizás les sea útil.. la tabla usuarios:

CREATE TABLE `usuarios` (
`codigo` int(4) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`apellido` varchar(255) default NULL,
`username` varchar(255) NOT NULL default '',
`user_password` varchar(255) NOT NULL default '',
`user_email` varchar(255) NOT NULL default '',
`activo` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`codigo`)
)TYPE=MyISAM

Última edición por Saldu; 14/07/2005 a las 13:58 Razón: Me faltó un dato..
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 15:39.