Viewing file: delete.php (12.83 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
############################################################################
# DWmail
# - version 4.0
# - Copyright (c) 2003-2006 Dominion Web Design
# - http://www.dominion-web.com/products/dwmail/
############################################################################
#
# The contents of this file are subject to the DWmail License version
# 2.2 ('License'). You may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.dominion-web.com/products/dwmail/license.php
# Software distributed under the License is distributed on an "AS IS" basis,
# without warranty of any kind, either express or implied.
#
# This code is Copyright (c) 2003-2006 Dominion Web Design.
# All rights reserved.
#
# This software may not be redistributed outside the terms of the
# license agreement.
#
############################################################################
*/
require ("./includes/init.inc.php");
require ("./includes/global.inc.php");
require ("./includes/imap.inc.php");
require ("./includes/functions.inc.php");
require ("./includes/config.inc.php");
$MainSettings = new GlobalInit();
$TransIDEnabled = $MainSettings->INIGet('session.use_trans_sid');
session_cache_limiter($DefaultSessionCache);
session_start();
if (!$_SESSION['DefaultLang']) {
$_SESSION['DefaultLang'] = $DefaultLang;
}
require ("./lang/" . strip_tags(str_replace("..", "", trim($_SESSION['DefaultLang']))) . "/global.inc.php");
require ("./lang/" . strip_tags(str_replace("..", "", trim($_SESSION['DefaultLang']))) . "/mailbox.inc.php");
@setlocale(LC_TIME, $AvailLangs[$_SESSION['DefaultLang']]['locale']);
require ("./includes/options.inc.php");
$_SESSION['tpl'] = strip_tags(trim($_SESSION['tpl']));
$getFile = new fileProperties($_SESSION['tpl']);
$PageHeader = $getFile->fileRead('header');
$PageFooter = $getFile->fileRead('footer');
$PageCopyright = $getFile->fileRead('copyright');
$PageDelete = $getFile->fileRead('delete');
$PageDeleteList = $getFile->fileRead('deletelist');
$PageMenu = $getFile->fileRead('menu');
$PageMenu = str_replace("[session]", $MainSettings->SessAppend_noecho($TransIDEnabled, 1), $PageMenu);
$PageMenu = str_replace("[session_append]", $MainSettings->SessAppend_noecho($TransIDEnabled, 0), $PageMenu);
$PageMenu = str_replace("[emailaddress]", $_SESSION['currentemailaddress'], $PageMenu);
$PageDelete = str_replace("[session_form]", $MainSettings->SessAppend_form($TransIDEnabled), $PageDelete);
$PageDelete = str_replace("[session_force]", "&" . strip_tags(SID), $PageDelete);
$PageDelete = str_replace("[message_folder]", urlencode($_SESSION['folder']), $PageDelete);
$PageHeader = str_replace("[mainmenu]", $PageMenu, $PageHeader);
$PageHeader = str_replace("[header_refresh]", "", $PageHeader);
$PageHeader = str_replace("[charset]", $_SESSION['DefaultCharSet'], $PageHeader);
$PageHeader = str_replace("[lang]", $_SESSION['DefaultLang'], $PageHeader);
$PageHeader = str_replace("[langdir]", $AvailLangs[$_SESSION['DefaultLang']]['dir'], $PageHeader);
$PageHeader = str_replace("[pagetitle]", " - " . $lang['SDelete']['Title'], $PageHeader);
$PageFooter = str_replace("[mainmenu]", $PageMenu, $PageFooter);
$PageFooter = str_replace("[copyright]", $PageCopyright, $PageFooter);
if ($AllowExternal == 1 && $UseDatabase == 1) {
$PageHeader = str_replace("[ifexternal]", "", $PageHeader);
$PageHeader = str_replace("[/ifexternal]", "", $PageHeader);
$PageFooter = str_replace("[ifexternal]", "", $PageFooter);
$PageFooter = str_replace("[/ifexternal]", "", $PageFooter);
}
else {
$PageHeader = preg_replace("/(\[)(ifexternal)(])(\r\n)*(.*)(\[\/ifexternal\])/siU", "", $PageHeader);
$PageFooter = preg_replace("/(\[)(ifexternal)(])(\r\n)*(.*)(\[\/ifexternal\])/siU", "", $PageFooter);
}
$genericerror = $getFile->fileRead('generic_message');
$genericerror = str_replace ('[pagetitle]', $lang['SErrors']['Title'], $genericerror);
$error_session = str_replace ('[pagemessage]', $lang['SErrors']['Session'], $genericerror);
CheckValidSession($_SESSION, $PageFooter, $error_session, $PageHeader, $lang);
$IMAPConnection = new WM_IMAPConnection($_SESSION);
$securitycheck = $IMAPConnection->WM_IMAPCheckSecurity();
$error_ipfailuresession = str_replace ('[pagemessage]', $lang['SErrors']['IP'], $genericerror);
CheckSessionSecurity($securitycheck, $PageFooter, $error_ipfailure, $PageHeader, $lang);
$mailbox = $IMAPConnection->WM_IMAPConnect();
checkmailbox_active($mailbox, $IMAPConnection, $PageHeader, $_SESSION['tpl'], $PageFooter, $getFile, $lang, $genericerror);
$numberofmessages = sizeof($_POST['selection']);
if ($numberofmessages == 0) {
$numberofmessages = sizeof($_GET['selection']);
}
$deletesummary = $numberofmessages . " " . $lang['SDelete']['Delete'];
$currrow = 1;
$selection = $_POST['selection'];
if (!isset($_POST['selection'])) {
$selection = $_GET['selection'];
}
if ($_GET['f']) {
$_SESSION['folder'] = strip_tags(trim($_GET['f']));
}
if ($_POST['f']) {
$_SESSION['folder'] = strip_tags(trim($_POST['f']));
}
$_SESSION['folder'] = urldecode($_SESSION['folder']);
if ($selection <> "") {
if ($_SESSION['fs'] == 1 && strip_tags($_GET['cw']) == 1) {
$cw = 1;
}
else {
$cw = 0;
}
$bypassconfirm = 0;
if (($_SESSION['servertype'] == "imap" || $_SESSION['servertype'] == "imapssl") && ($UseTrash == 1) && ($_SESSION['folder'] <> $IMAPTrash)) {
$bypassconfirm = 1;
}
if (($_POST['delete'] <> 1) && ($bypassconfirm <> 1)) {
if (is_array($selection)) {
while(list($key, $value) = each($selection)) {
if ($currrow == 1) {
$classid = "col1";
$currrow = 2;
}
else {
$classid = "col2";
$currrow = 1;
}
$IMAPConnection->WM_IMAPGetHeader($key);
$headerdetails = $IMAPConnection->WM_IMAPFullHeaders();
$subj = $IMAPConnection->WM_IMAPGetSubject();
$CodeSearch = array (
"[message_number]",
"[message_from]",
"[message_title]",
"[message_date]",
"[session]",
"[rowcolour]",
"[closewindow]"
);
$CodeReplace = array (
$key,
htmlentities(ereg_replace('<([^>]|\n)*>', '', $headerdetails['fromaddress']), ENT_QUOTES),
$subj,
$headerdetails['date'],
$MainSettings->SessAppend_noecho($TransIDEnabled, 1),
$classid,
$cw
);
$CurrentMessage = str_replace ($CodeSearch, $CodeReplace, $PageDeleteList);
$FullList .= $CurrentMessage;
$HiddenFields .= "<input type=\"hidden\" name=\"selection[$key]\" value=\"1\" />";
}
}
else {
if ($currrow == 1) {
$classid = "col1";
$currrow = 2;
}
else {
$classid = "col2";
$currrow = 1;
}
$IMAPConnection->WM_IMAPGetHeader($selection);
$headerdetails = $IMAPConnection->WM_IMAPFullHeaders();
$subj = $IMAPConnection->WM_IMAPGetSubject();
$CodeSearch = array (
"[message_number]",
"[message_from]",
"[message_title]",
"[message_date]",
"[session]",
"[rowcolour]",
"[closewindow]"
);
$CodeReplace = array (
$selection,
htmlentities(ereg_replace('<([^>]|\n)*>', '', $headerdetails['fromaddress']), ENT_QUOTES),
$subj,
$headerdetails['date'],
$MainSettings->SessAppend_noecho($TransIDEnabled, 1),
$classid,
$cw
);
$CurrentMessage = str_replace ($CodeSearch, $CodeReplace, $PageDeleteList);
$FullList .= $CurrentMessage;
$HiddenFields .= "<input type=\"hidden\" name=\"selection[$selection]\" value=\"1\" />";
}
$CurrentDelete = str_replace ("[messagelist]", $FullList, $PageDelete);
$CurrentDelete = str_replace("[deletesummary]", $deletesummary, $CurrentDelete);
$CurrentDelete = str_replace("[hiddenfields]", $HiddenFields, $CurrentDelete);
include ("./includes/folderpane.inc.php");
$PageHeader = str_replace ("[folders]", $PageFolderPane, $PageHeader);
$PageHeader = LangReplace('Generic', $PageHeader, $lang);
$PageHeader = LangReplace('SFolderPane', $PageHeader, $lang);
$PageFooter = LangReplace('Generic', $PageFooter, $lang);
$PageFooter = LangReplace('SFolderPane', $PageFooter, $lang);
header ("Content-Type: text/html; charset=" . $_SESSION['DefaultCharSet']);
echo $PageHeader;
$CurrentDelete = LangReplace('SDelete', $CurrentDelete, $lang);
$CurrentDelete = LangReplace('SMbox', $CurrentDelete, $lang);
echo $CurrentDelete;
}
else {
$PageGenericMessage = $getFile->fileRead('generic_message');
$PageGenericMessage = str_replace("[pagetitle]", "Delete Message(s)", $PageGenericMessage);
if (($_SESSION['servertype'] == "imap" || $_SESSION['servertype'] == "imapssl") && ($UseTrash == 1) && ($_SESSION['folder'] <> $IMAPTrash)) {
$movemessages = $IMAPConnection->WM_IMAPMove($selection, $IMAPTrash, $CyrusIMAP);
if ($movemessages == TRUE) {
// Uncomment this next line if you want a delete success page instead of a redirect to the folder
// $returnmessage = "Message(s) moved to Trash successfully</p><p align=\"center\"><a href=\"mailbox.php?f=" . $_SESSION['folder'] . $MainSettings->SessAppend_noecho($TransIDEnabled, 0) . "\">" . $lang['Back'] . "</a>";
$imapstatus = $IMAPConnection->WM_IMAPStatus('INBOX');
if ($_SESSION['servertype'] == "imap" || $_SESSION['servertype'] == "imapssl") {
$numberofmessages = $imapstatus->unseen;
}
else {
$numberofmessages = $imapstatus->messages;
}
$_SESSION['IT'] = $numberofmessages;
}
else {
$returnmessage = $lang['SErrors']['MoveError'] . "</p><p align=\"center\"><a href=\"mailbox.php?f=" . $_SESSION['folder'] . $MainSettings->SessAppend_noecho($TransIDEnabled, 0) . "\">" . $lang['Back'] . "</a>";
}
}
else {
while(list($key, $value) = each($selection)) {
$IMAPConnection->WM_IMAPDelete($key);
}
$IMAPConnection->WM_IMAPExpungeMailbox();
// Uncomment this next line if you want a delete success page instead of a redirect to the folder
// $returnmessage = $lang['SDelete']['Success'] . "</p><p align=\"center\"><a href=\"mailbox.php?f=" . $_SESSION['folder'] . $MainSettings->SessAppend_noecho($TransIDEnabled, 0) . "\">" . $lang['Back'] . "</a>";
$imapstatus = $IMAPConnection->WM_IMAPStatus('INBOX');
if ($_SESSION['servertype'] == "imap" || $_SESSION['servertype'] == "imapssl") {
$numberofmessages = $imapstatus->unseen;
}
else {
$numberofmessages = $imapstatus->messages;
}
$_SESSION['IT'] = $numberofmessages;
}
if ($returnmessage) {
$PageGenericMessage = str_replace("[pagemessage]", $returnmessage, $PageGenericMessage);
include ("./includes/folderpane.inc.php");
$PageHeader = str_replace ("[folders]", $PageFolderPane, $PageHeader);
$PageHeader = LangReplace('Generic', $PageHeader, $lang);
$PageHeader = LangReplace('SFolderPane', $PageHeader, $lang);
$PageFooter = LangReplace('Generic', $PageFooter, $lang);
$PageFooter = LangReplace('SFolderPane', $PageFooter, $lang);
header ("Content-Type: text/html; charset=" . $_SESSION['DefaultCharSet']);
echo $PageHeader;
echo $PageGenericMessage;
}
elseif ($_SESSION['fs'] == 1 && $PreviewPane == 1 && strip_tags($_POST['cw']) == 1) {
include ("./includes/folderpane.inc.php");
$PageHeader = str_replace ("[folders]", $PageFolderPane, $PageHeader);
$PageHeader = LangReplace('Generic', $PageHeader, $lang);
$PageHeader = LangReplace('SFolderPane', $PageHeader, $lang);
$PageFooter = LangReplace('Generic', $PageFooter, $lang);
$PageFooter = LangReplace('SFolderPane', $PageFooter, $lang);
header ("Content-Type: text/html; charset=" . $_SESSION['DefaultCharSet']);
echo $PageHeader;
$PageGenericMessage = str_replace("[pagemessage]", "<script language=\"javascript\" type=\"text/javascript\">window.close();</script>", $PageGenericMessage);
echo $PageGenericMessage;
echo $PageFooter;
}
else {
header("Location: ./mailbox.php?f=" . $_SESSION['folder'] . "&" . strip_tags(SID));
$IMAPConnection->WM_IMAPClose();
exit;
}
}
}
else {
include ("./includes/folderpane.inc.php");
$PageHeader = str_replace ("[folders]", $PageFolderPane, $PageHeader);
$PageHeader = LangReplace('Generic', $PageHeader, $lang);
$PageHeader = LangReplace('SFolderPane', $PageHeader, $lang);
$PageFooter = LangReplace('Generic', $PageFooter, $lang);
$PageFooter = LangReplace('SFolderPane', $PageFooter, $lang);
header ("Content-Type: text/html; charset=" . $_SESSION['DefaultCharSet']);
echo $PageHeader;
$PageGenericMessage = $getFile->fileRead('generic_message');
$PageGenericMessage = str_replace("[pagetitle]", $lang['SDelete']['Title'], $PageGenericMessage);
$PageGenericMessage = str_replace("[pagemessage]", "<p align=\"center\">" . $lang['SErrors']['DeleteError'] . "</p>", $PageGenericMessage);
echo $PageGenericMessage;
}
$IMAPConnection->WM_IMAPClose();
echo $PageFooter;
?>
|