📄 messanger.cgi
字号:
#!/usr/bin/perl
#############################################################
# Ikonboard v2.1
# Copyright 2000 Ikondiscussion.com - All Rights Reserved
# Ikondiscussion is a trademark of Ikondiscussion.com
#
# Software Distributed by: Ikondiscussion.com
# Visit us online at http://www.ikondiscussion.com
# Email us on boards@ikondiscussion.com
#
# All files written by Matthew Mecham
#############################################################
#use CGI::Carp "fatalsToBrowser"; # Output errors to browser
use CGI qw(:standard); # Saves loads of work
$CGI::POST_MAX=1024 * 150; # limit post data
$CGI::DISABLE_UPLOADS = 1; # Disable uploads
eval {
($0 =~ m,(.*)/[^/]+,) and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "ikon.lib"; # Require ikonboard ()
require "data/progs.cgi"; # Require prog names
require "data/boardinfo.cgi";# Require board info
require "data/styles.cgi"; # Require styles info
};
if ($@) {
print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
print end_html; exit;
}
$|++; # Unbuffer the output
#################--- Begin the program ---###################
$thisprog = "messanger.cgi";
$query = new CGI;
$boardurltemp =$boardurl;
$boardurltemp =~ s/http\:\/\/(\S+?)\/(.*)/\/$2/;
$cookiepath = $boardurltemp;
$cookiepath =~ s/$thisprog//sg;
$intouser = $query -> param('touser');
$action = $query -> param('action');
$inmsg = $query -> param('msg');
$inwhere = $query -> param('where');
$inmembername = $query -> param('membername');
$inpassword = $query -> param('password');
$inmsgtitle = $query -> param('msgtitle');
$inmessage = $query -> param('message');
$inmembername = &cleaninput($inmembername);
$inpassword = &cleaninput($inpassword);
$inmessage = &cleaninput($inmessage);
$inmsgtitle = &cleaninput($inmsgtitle);
$inboxpm = qq~<img src="$imagesurl/images/inboxpm.jpg" border=0>~;
$outboxpm = qq~<img src="$imagesurl/images/outboxpm.jpg" border=0>~;
$newpm = qq~<img src="$imagesurl/images/newpm.jpg" border=0>~;
$replypm = qq~<img src="$imagesurl/images/replypm.jpg" border=0>~;
$deletepm = qq~<img src="$imagesurl/images/deletepm.jpg" border=0>~;
###Begin Program
if (! $inmembername) { $inmembername = cookie("amembernamecookie"); }
if (! $inpassword) { $inpassword = cookie("apasswordcookie"); }
if ($inmembername eq "" || $inmembername eq "客人") {
$inmembername = "客人";
}
else {
&getmemberstime("$inmembername");
}
if ($action eq "loggedin") {
$namecookie = cookie(-name => "amembernamecookie",
-value => "$inmembername",
-path => "$cookiepath",
-expires => "+30d");
$passcookie = cookie(-name => "apasswordcookie",
-value => "$inpassword",
-path => "$cookiepath",
-expires => "+30d");
print header(-cookie =>[$namecookie, $passcookie], -charset=>"gb2312");
}
else {
print header(-charset=>"gb2312");
}
if (($inmsg) && ($inmsg !~ /^[0-9]+$/)) { &error("普通&请不要修改生成的 URL!"); }
$action = "inbox" if ($action eq "");
### Print Header for the page.
$output .= qq~
<table cellpadding=0 cellspacing=0 border=0 width=95% bgcolor=$tablebordercolor align=center>
<tr>
<td>
<table cellpadding=3 cellspacing=1 border=0 width=100%>
~;
### Startactions
&whosonline("$inmembername|短消息|none|收发短消息|");
if ($action eq "new") {
# Validate user
&getmember("$inmembername");
if ($inmembername eq "") { &login("$thisprog?action=reply&touser=$intouser"); }
elsif ($userregistered eq "no") { &messangererror("错误信息&您没有注册!"); }
elsif ($inpassword ne $password) { &messangererror("错误信息&您的密码错误!"); }
$cleanname = $intouser;
$cleanname =~ s/\_/ /g;
# Present the form
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo align=center colspan=3><font face="$font" color=$fontcolormisc><b>发送短消息</b></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle align=center colspan=3><a href="$thisprog?action=inbox">$inboxpm</a> <a href="$thisprog?action=outbox">$outboxpm</a> <a href="$thisprog?action=new">$newpm</a></td>
</tr>
<tr>
<td bgcolor=$miscbacktwo colspan=2 align=center>
<form action="$thisprog" method=post>
<input type=hidden name="action" value="send">
<font face="$font" color=$fontcolormisc><b>请完整输入下列信息</b></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc><b>接收用户名:</b></font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="touser" value="$cleanname" size=40></a></td></tr>
<tr>
<td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc><b>短信息标题:</b></font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="msgtitle" size=40 maxlength=80></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc><b>短信息内容:</b></td>
<td bgcolor=$miscbackone valign=middle><textarea cols=55 rows=6 name="message"></textarea></td>
</tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<input type=Submit value="发 送" name=Submit"> <input type="reset" name="Clear" value="清 除">
</td></form></tr>
~;
} # end action
elsif ($action eq "outbox") {
# Validate the user
&getmember("$inmembername");
if ($inmembername eq "客人") { &login("$thisprog?action=outbox"); }
elsif ($userregistered eq "no") { &messangererror("发件箱&您没有注册!"); }
elsif ($inpassword ne $password) { &messangererror("发件箱&密码错误!"); }
# Pick up the messages (outbox)
$memberfilename = $inmembername;
$memberfilename =~ s/ /\_/g;
$filetoopen = "$ikondir". "messages/$memberfilename" . "_out.cgi";
$filetoopen = &stripMETA($filetoopen);
open (FILE, "$filetoopen");
@outboxmessages = <FILE>;
close (FILE);
$totalinboxmessages = @outboxmessages;
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo align=center colspan=2><font face="$font" color=$fontcolormisc><b>欢迎使用短消息发送,$membername</b></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle align=center colspan=3><a href="$thisprog?action=inbox">$inboxpm</a> <a href="$thisprog?action=outbox">$outboxpm</a> <a href="$thisprog?action=new">$newpm</a></td>
</tr>
<tr>
<td bgcolor=$miscbackone align=center valign=middle><font face="$font" color=$fontcolormisc><b>发送给</b></td>
<td bgcolor=$miscbackone align=center valign=middle><font face="$font" color=$fontcolormisc><b>标题</b></td>
</tr>
~;
# Display the messages.
$count = 0;
foreach (@outboxmessages) {
($from, $readstate, $date, $messagetitle, $message) = split(/\|/,$_);
if ($readstate eq "no") {
$readstate = qq~<font face="$font" color="$fonthighlight"><b>否</b></font>~;
}
else {
$readstate = qq~<font face="$font" color="$fontcolormisc">是</font>~;
}
if ($badwords) {
@pairs = split(/\&/,$badwords);
foreach (@pairs) {
($bad, $good) = split(/=/,$_);
chop $good;
$messagetitle=~ s/$bad/$good/isg;
}
}
$output .= qq~
<tr>
<td bgcolor=$miscbackone align=center valign=middle><font face="$font" color=$fontcolormisc>$from</td>
<td bgcolor=$miscbackone align=center valign=middle><font face="$font" color=$fontcolormisc><a href="$thisprog?action=outread&msg=$count">$messagetitle</a></td>
</tr>
~;
$count++;
} # end foreach
$output .=qq~
<tr>
<td bgcolor=$miscbacktwo align=center valign=middle colspan=2><font face="$font" color=$fontcolormisc><a href="$thisprog?action=deleteall&where=outbox">删除所有的短消息</a></td>
</tr>
~;
} # end action
elsif ($action eq "deleteall") {
# Validate user
&getmember("$inmembername");
if ($inmembername eq "客人") { &login("$thisprog?action=deleteall&where=$inwhere"); }
elsif ($userregistered eq "no") { &messangererror("短消息&您没有注册!"); }
elsif ($inpassword ne $password) { &messangererror("短消息&您的密码错误!"); }
# Ensure the username has the underscore returned
$memberfilename = $inmembername;
$memberfilename =~ s/ /\_/g;
# Open the user's file
if ($inwhere eq "inbox") {
$filetotrash = "$ikondir". "messages/$memberfilename" . "_msg.cgi";
}
elsif ($inwhere eq "outbox") {
$filetotrash = "$ikondir". "messages/$memberfilename" . "_out.cgi";
}
if ($filetotrash ne "") {
unlink "$filetotrash";
}
else {
&messangererror("短消息&文件没有找到,请重复刚才步骤!");
}
# Print the all done screen
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo align=center><font face="$font" color=$fontcolormisc><b>所有的短消息已被删除</b></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle align=center><a href="$thisprog?action=inbox">$inboxpm</a> <a href="$thisprog?action=outbox">$outboxpm</a> <a href="$thisprog?action=new">$newpm</a></td>
</tr>
<tr>
<td bgcolor=$miscbackone align=center><font face="$font" color=$fontcolormisc><b>您在$inwhere中的短消息已经全部删除</b></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -