📄 messanger.cgi
字号:
<td bgcolor=$miscbackone align=center valign=middle><font face="$font" color=$fontcolormisc><b>是否读过?</b></td>
</tr>
~;
# Display the messages.
$count = 0;
foreach (@inboxmessages) {
($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=read&msg=$count">$messagetitle</a></td>
<td bgcolor=$miscbackone align=center valign=middle>$readstate</td>
</tr>
~;
$count++;
} # end foreach
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo align=center valign=middle colspan=3><font face="$font" color=$fontcolormisc><a href="$thisprog?action=deleteall&where=inbox">删除所有的短消息</a></td>
</tr>
~;
} # end action
elsif ($action eq "read") { # start showing messages
# Validate the user
&getmember("$inmembername");
if ($inmembername eq "客人") { &login("$thisprog?action=read&msg=$inmsg"); }
elsif ($userregistered eq "no") { &messangererror("短消息&您没有注册!"); }
elsif ($inpassword ne $password) { &messangererror("短消息&您的密码错误!"); }
# Pick up the messages (inbox)
$memberfilename = $inmembername;
$memberfilename =~ s/ /\_/g;
$filetoopen = "$ikondir". "messages/$memberfilename" . "_msg.cgi";
$filetoopen = &stripMETA($filetoopen);
open (FILE, "$filetoopen");
@inboxmessages = <FILE>;
close (FILE);
# Get the line to split
$msgtograb = @inboxmessages[$inmsg];
($from, $readstate, $date, $messagetitle, $post) = split(/\|/,$msgtograb);
# Write back to as read
$count = 0;
open (FILE, ">$filetoopen");
flock (FILE, 2) if ($OS_USED eq "Unix");
foreach $line (@inboxmessages) {
chomp $line;
if ($count eq $inmsg) {
print FILE "$from|yes|$date|$messagetitle|$post";
}
else {
print FILE "$line\n";
}
$count++;
}
close (FILE);
$date = $date + ($timedifferencevalue*3600) + ($timezone*3600);
$date = &dateformat("$date");
$cleanmember = $from;
$cleanmember =~ s/ /\_/g;
# Print the header
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo align=center colspan=3><font face="$font" color=$fontcolormisc><b>欢迎使用您的收件箱,$membername</b></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle align=center colspan=3><a href="$thisprog?action=delete&where=inbox&msg=$inmsg">$deletepm</a> <a href="$thisprog?action=inbox">$inboxpm</a> <a href="$thisprog?action=outbox">$outboxpm</a> <a href="$thisprog?action=new">$newpm</a> <a href="$thisprog?action=new&touser=$cleanmember">$replypm</a</td>
</tr>
~;
# Split the line
$post = &ikoncode("$post");
if ($emoticons eq "on") {
$post = &doemoticons("$post");
$post = &smilecode("$post");
}
### Print message
if ($badwords) {
@pairs = split(/\&/,$badwords);
foreach (@pairs) {
($bad, $good) = split(/=/,$_);
chop $good;
$messagetitle=~ s/$bad/$good/isg;
$post=~ s/$bad/$good/isg;
}
}
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc>
消息来自<b>$from</b>,发送给您的时间:<b>$date</b></font></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=top align=left><font face="$font" color=$fontcolormisc>
<b>消息标题:$messagetitle</b><p>
$post</td>
</tr>
~;
} # end read
elsif ($action eq "delete") {
# Validate user
&getmember("$inmembername");
if ($inmembername eq "客人") { &login("$thisprog?action=delete&where=$inwhere&msg=$inmsg"); }
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") {
$filetoopen = "$ikondir". "messages/$memberfilename" . "_msg.cgi";
}
elsif ($inwhere eq "outbox") {
$filetoopen = "$ikondir". "messages/$memberfilename" . "_out.cgi";
}
$filetoopen = &stripMETA($filetoopen);
open (FILE, "$filetoopen");
@boxmessages = <FILE>;
close (FILE);
# Write back to the 'to' users file
$count = 0;
open (FILE, ">$filetoopen");
flock (FILE, 2) if ($OS_USED eq "Unix");
foreach $line (@boxmessages) {
chomp $line;
if ($count ne $inmsg) {
print FILE "$line\n";
}
$count++;
}
close (FILE);
# 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>
</tr>
~;
} # end action
else {
&login("$thisprog?action=loggedin");
}
$output .= qq~</table></td></tr></table>~;
&printmessanger(
-Title => "$boardname - 短消息",
-ToPrint => $output,
-Version => $versionnumber
);
##############################################################
### Sub route (login)
sub login {
local($url) = @_;
($postto, $therest) = split(/\?/,$url);
@pairs = split(/\&/,$therest);
foreach (@pairs) {
($name, $value)=split(/\=/,$_);
$hiddenvars .= qq~<input type=hidden name="$name" value="$value">\n~;
}
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<form action="$postto" method="post">$hiddenvars
<font face="$font" color=$fontcolormisc><b>请输入您的用户名、密码登陆</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的用户名</font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername"0></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的密码</font></td>
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword"0></td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="submit" value="登 陆"></td></form></tr></table></td></tr></table>
~;
$output .= qq~</table></td></tr></table>~;
&printmessanger(
-Title => "$boardname - 短消息",
-ToPrint => $output,
-Version => $versionnumber
);
} # end routine
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -