Foros del Web » Programación para mayores de 30 ;) » Programación General »

CHAT Mensajes Privados

Estas en el tema de CHAT Mensajes Privados en el foro de Programación General en Foros del Web. Hola, no se si es aqui donde puedo solicitar ayuda. Mi problema es que he hecho un chat en un frame en Perl, y necesito ...
  #1 (permalink)  
Antiguo 29/12/2005, 02:35
 
Fecha de Ingreso: diciembre-2005
Mensajes: 2
Antigüedad: 18 años, 11 meses
Puntos: 0
CHAT Mensajes Privados

Hola, no se si es aqui donde puedo solicitar ayuda.
Mi problema es que he hecho un chat en un frame en Perl, y necesito saber como sería la programacion para poder enviar mensajes privados, los campos con los que esta hecho el chat son ....

print << "EOF";
<CENTER><TABLE CELLSPACING=0 CELLPADDING=0>
<TR><TD>
<nobr><FORM name="isn" ACTION="$ENV{'SCRIPT_NAME'}" METHOD="POST" onSubmit="return JoinIn();">
<font face="verdana"><b>ESCRIBA MENSAJE: </font></b><input name=username type=hidden value="$form{'username'}">
<input name=room type=hidden value="$form{'room'}">
<input type=text name=message size=52 onfocus="javascript:this.select()">
<input name=CHATCOLOR type=hidden value="$form{'CHATCOLOR'}" size="8">
<input name=nombre type=text value="">
<input type=submit value="Enviar">
</form></nobr>
</TD></TR>
</TABLE></CENTER>


EOF

donde el campo "nombre" es el usurio al que se le va a enviar el privado.

Gracias anticipadas.
Un saludo
  #2 (permalink)  
Antiguo 29/12/2005, 06:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Hola, antes que nada, BIENVENIDO A LOS FOFOS !!!

Este es tu primer mensaje !!!

Ahora bien, Ahí tienes el HTML, no creo que la complicación venga por ese lado, para hacer un chat privado, el script del chat debe soportar varias SALAS de chat, las cuales una será general y la otras serán privadas entre dos personas...

Sabés si tu script soporta esas multisalas ? o está hecho solo para una sola ?

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 30/12/2005, 01:38
 
Fecha de Ingreso: diciembre-2005
Mensajes: 2
Antigüedad: 18 años, 11 meses
Puntos: 0
Mensajes Privados

Hola, gracias por haber respondido a mi mensaje.
El chat no tiene salas privadas, consta de un frame, con una página lateral donde se ven los usuarios que hay en el chat, una página inferior donde esta el input con el campo del usuario que entra y este a su vez abre la página de perl donde se empieza a escribir los mensajes y una página principal de chat que abre un html que es donde se envian los mensajes, la página de perl que existe de programacion de perl es la siguiente..


#!/usr/bin/perl




$imagedir = '../../../../graficas-perl/utiles';

$filepath='/var/www/graficas-perl/chat/';
$filext='.html';

$iecompatible=1;

$ChatRefresh = 5;
$chatLogging = '1';
$logFileName = 'historico.html';

$ChatMessageTime = 600;

@badwords = ("follar", "sexo", "puta", "puton", "huevos", "polla", "cipote", "cornudo", "tortillera", "pedorra", "pedorro", "caga", "cagado", "hijoputa", "cabron", "maricon", "mariquita", "gay", "pene", "lesbiana", "homosexual", "porno", "joder", "coño", "cuernos", "jodiendo", "f`?.?u`?.?c`?.?k"); #PROHIBE PALABRAS
my $thetime = time;


print "Content-type: text/html\nPragma: no-cache\n\n";
print "<html>\n";
print "<title></title>\n";
print "<head>\n";
#print "<bgSound src=\"../../../../graficas-perl/utiles/notify.wav\" id=\"sound\">";
print "</head>\n";
print "<BODY OnContextMenu=\"return false\" topmargin=0 leftmargin=0 bgcolor=#006200 TEXT=#FFFFFF OnLoad='document.isn.message.focus();'>\n";
&getform;
if (&getoldfile) {
&gettime;
&printform;
if ($form{'message'} ne "") { &printnewfile; }
else { &printnoframes; }
}
else
{
print "Esta página<I>$form{'room'}</I> no existe<BR>\n";
print "Administrador: <I>$filepath$form{'room'}$filext</I>\n";
}
print "</font></body></html>\n";
exit(0);


sub getform {
$buffer = "";
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$buffer);
foreach $pair (@pairs)
{
@a = split(/=/,$pair);
$name=$a[0];
$value=$a[1];
$value =~ s/\+/ /g;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/~!/ ~!/g;
$value =~ s/\</\&lt\;/g; # html tag removal (remove these lines to enable HTML tags in messages)
$value =~ s/\>/\&gt\;/g; # html tag removal (remove these lines to enable HTML tags in messages)
$value =~ s/[\r\n]//g;
push (@data,$name);
push (@data,$value);
}
%form=@data;
%form;
}


sub getoldfile {
$form{'room'} =~ s/\W//g;
return 0 unless open(HTMLOLD, "$filepath$form{'room'}$filext");
@lines=<HTMLOLD>;
close(HTMLOLD);
return 1;
}


sub gettime {
$now_string = localtime;
@thetime = split(/ +/,$now_string);
@theclock = split(/:/,$thetime[3]);
$ampm = 'am';
if ($theclock[0] > 11)
{ $ampm = 'pm'; }
if ($theclock[0] == 0)
{ $theclock[0] = 12; }
if ($theclock[0] > 12)
{ $theclock[0] -= 12; }
else
{ $theclock[0] += 0; }
}



sub printform {


if (@badwords > 0) {
foreach $curse (@badwords) {
$form{'message'} =~ s/$curse/\<font color=red\>\%\&\#\%\<\/font\>/ig;
$form{'username'} =~ s/$curse/\<font color=red\>\%\&\#\%\<\/font\>/ig;
}
}

print << "EOF";
<CENTER><TABLE CELLSPACING=0 CELLPADDING=0>
<TR><TD>
<nobr><FORM name="isn" ACTION="$ENV{'SCRIPT_NAME'}" METHOD="POST" onSubmit="return JoinIn();">
<font face="verdana"><b>ESCRIBA MENSAJE: </font></b><input name=username type=hidden value="$form{'username'}">
<input name=room type=hidden value="$form{'room'}">
<input type=text name=message size=82 onfocus="javascript:this.select()">
<input name=CHATCOLOR type=hidden value="$form{'CHATCOLOR'}" size="8">
<input type=submit value="Enviar">
</form></nobr>
</TD></TR>
</TABLE></CENTER>


EOF
}


sub printnewfile {

if($form{'username'} eq "1º_ESTADÍSTICA_MADRID_J.A" or $form{'username'} eq "2º_ESTADÍSTICA_MADRID_F.V" or $form{'username'} eq "3º_ESTADÍSTICA_MADRID_R.B" or $form{'username'} eq "4º_ESTADÍSTICA_MADRID_J.M" or $form{'username'} eq "5º_ESTADÍSTICA_MADRID_V.A" or $form{'username'} eq "10º_ESTADÍSTICA_MADRID_J.R"){
$color = "006200";
}else{
$color = "0000FF";
}


@fechas = localtime (time());
$ar = 1900 + @fechas[5];
$mes = @fechas[4] + 1;
$dia = @fechas[3];
$fechadia = @fechas[3]. "" .$mes. "" .$ar; # si no hay nada entre las comillas,junta los datos


my $thetime = time;


$newmessage = &Make_Color("<font size='2' color=#$color><B>&nbsp;&nbsp;$form{'username'}</B></font>&nbsp;&nbsp;<font face=\"Arial\" color=\"$form{'CHATCOLOR'}\"><img src=\"../../../../graficas-perl/utiles/arrow_bl.gif\" width=\"12\" height=\"8\" border=\"0\">&nbsp;&nbsp;$form{'message'}&nbsp;&nb sp;</font><font size='2' color=#006600>(@fechas[2] : @fechas[1]) <!--$thetime//--> </font><br>\n");
open (NEW, ">$filepath$form{'room'}$filext");
print NEW "<HTML>\n";
print NEW "<HEAD>\n";
print NEW "<META HTTP-EQUIV=Refresh CONTENT=$ChatRefresh>\n";
print NEW "<META HTTP-EQUIV=Pragma CONTENT=no-cache>\n";
print NEW "<script LANGUAGE=\"javascript\">\n";
print NEW "function LogOff() {\n";
print NEW "parent.sendchat.document.forms[0].message.value = '`4 Ha salido de la aplicación de Estadística en Linea ';\n";
print NEW "parent.sendchat.document.forms[0].submit();\n";
print NEW "document.write('<html><body><center><font color=#006200>Tu login esta fuera<br>Por favor espera<br>Se cerrara en 2 segundos</center></font></body></html>');\n";
print NEW "if (!(parent.window.confirm(\"Estas seguro que quiere salir ahora?\"))) { return; }\n";
print NEW "setTimeout('parent.window.close();',3000);\n" ;
print NEW "}\n";
print NEW "</script>\n";
print NEW "<div align=\"right\"><table border=0 cellpadding=0 cellspacing=0 width=\"102%\" bgcolor=\"#006200\"><tr><td width=\"50%\" align=\"right\"><span style=background-color:#006200><b><font size=4 color=#ffffff face=Arial><img border=0 src=../../../../../graficas-perl/utiles/logogc_color2.gif width=21 height=30>&nbsp;&nbsp;Bienvenido a Estadística en línea &nbsp;&nbsp;<img border=0 src=../../../../../graficas-perl/utiles/message.jpg width=21 height=30></font></b></span></td><td width=\"50%\" align=\"right\" valign=\"top\" bgcolor=#006200><input type=\"button\" value=\"SALIR CORRECTAMENTE\" onclick=\"javascript:LogOff()\"></td></tr></table></div><br>\n";
print NEW "</HEAD>\n";
print NEW "<BODY OnContextMenu=\"return false\" BGCOLOR=#FFFFFF topmargin=\"0\" leftmargin=\"0\">\n";
if ($iecompatible) {

print NEW $newmessage;
print $newmessage;

if ($chatLogging) {
my $now_string = gmtime;
if (open(CHATLOG, ">>$filepath/$logFileName")) {
print CHATLOG '<small>' . $now_string . '-' . '-</small>' . $newmessage;
close(CHATLOG);
}
}
for ($i = 1; $i < @lines; $i++)
{
$lines[$i] =~ m/<!--(\d*)\/\/-->/;
if ((time - $1) <= $ChatMessageTime)
{
print NEW "$lines[$i]";
print "$lines[$i]";
}
}
}

print NEW "</BODY></HTML>\n";

close NEW;
}

sub Make_Color {
my $st = shift;
my $result = '';
my $colors = 0;
my $i;
my $ch;

for ($i=0; $i < length($st); $i++) {
if (substr($st,$i,1) eq '`') {
$i++;
if ($i > length($st)) { next; }
$ch = substr($st,$i,1);
if ($ch eq '1') {$result .= '<font color="#0000FF">'; $colors++;}
elsif ($ch eq '2') {$result .= '<font color="#ffa000">'; $colors++;}
elsif ($ch eq '3') {$result .= '<font color="#339933">'; $colors++;}
elsif ($ch eq '4') {$result .= '<font color="#FF0000">'; $colors++;}
elsif ($ch eq '5') {$result .= '<font color="#330099">'; $colors++;}
elsif ($ch eq '6') {$result .= '<font color="#33CCFF">'; $colors++;}
elsif ($ch eq '7') {$result .= '<font color="#666666">'; $colors++;}
elsif ($ch eq '8') {$result .= '<font color="#5700AE">'; $colors++;}
elsif ($ch eq '9') {$result .= '<font color="#800000">'; $colors++;}
elsif ($ch eq '0') {$result .= '<font color="#9900CC">'; $colors++;}
elsif ($ch eq '!') {$result .= '<font color="#000000">'; $colors++;}
elsif ($ch eq 'A') {$result .= '<img src="../../../../graficas-perl/utiles/stop2.gif" border="0">'; $colors++;}
elsif ($ch eq '%') {$result .= '<img src="../../../../graficas-perl/utiles/stop1.gif" border="0"> '; $colors++;}
elsif ($ch eq '@') {$result .= '<img src="../../../../graficas-perl/utiles/smile3.gif" width="16" height="12" border="0">'; $colors++;}
elsif ($ch eq '$') {$result .= '<img src="../../../../graficas-perl/utiles/smile2.gif" width="16" height="12" border="0">'; $colors++;}
elsif ($ch eq '#') {$result .= '<img src="../../../../graficas-perl/utiles/smile1.gif" width="16" height="12" border="0">'; $colors++;}
} else {
$result .= substr($st,$i,1);
}
}

while ($colors--) { $result .= '</font>'; }

return ($result);
}

Te doy doy las gracias de nuevo, ahora me voy unos dias de vacaciones, por lo que no entrare en tu foro hasta pasadas las fiestas de año y reyes.
Un saludo
  #4 (permalink)  
Antiguo 30/12/2005, 07:10
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Hola, por lo que veo el chat está bastante feo che, no creo que sea tan fácil modificarlo para colocarse salas privadas, porque no mejor te instalas otro script que ya lo tenga programado ??

Hay miles de scripts danto vueltas, fijate en las FAQ (Primer mensaje de este foro) que encontrarás un post con links a buscadores de scripts pre fabricados...

Sino si que lo veo complicado...

Saludos
__________________
Esteban Quintana
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 23:04.