It runs sooo slow on my server im thinking there might be a loop or something. Does anyone see any way i can optmize this code? Thanks
<? //mail/index.php -- send/recieve/store mail.
include "db/include.php";
if ($loggedin != 1) { header("Location: login.php"); }
if (isset($_GET['send'])) {
$reciever = $_POST['reciever'];
$user = mysql_query("SELECT * FROM users WHERE username='$reciever'");
if (!mysql_num_rows($user)) { die("That user does not exist"); }
$user = mysql_fetch_assoc($user);
$uid = $user['uid'];;
$subject = $_POST['subject'];
$body = $_POST['body'];
$subject = trim($subject);
$body = trim($body);
if (empty($body)) { die("Please include a body"); }
if (empty($subject)) { $subject = "(No subject)"; }
$ts = time() + (3600*5);
$date = getdate();
$sender = $sessuser;
mysql_query("INSERT into mail (uid, sender, reciever, timestamp, subject, body, unread, box) VALUES ('$uid', '$sender', '$reciever', '$ts', '$subject', '$body', '1', 'Inbox')");
header("Location: mail.php"); }
else if (isset($_GET['delete'])) {
$keys = array_keys($_POST['delete']);
$query = 'UPDATE mail SET status=1 WHERE mid IN (' . implode(',', $keys) . ') AND reciever=\'' . $sessuser . '\'';
mysql_query($query);
header("Location: mail.php"); }
?>
<?
include("header.php");
?>
<DIV class=news_cap>Messages</div>
<? if (isset($_GET['compose'])) { ?>
<center><form method="POST" action="mail.php?send">
<div align="left"><b>To: </b>
<input type="text" name="reciever" size="20" maxlength="16" value="<? echo $_GET['username']; ?>">
<br>
<br>
<b>Subject:</b>
<input type="text" name="subject" size="20" maxlength="15">
<br>
<br>
<b>Body</b>
<textarea name="body" rows="10" cols="80"></textarea>
<br>
<input type="submit" value="Send!">
</div>
</form></center>
<? } else if (isset($_GET['read'])) {
$mid = $_GET['read'];
mysql_query("UPDATE mail SET unread='0' WHERE mid='$mid'");
$tz = mysql_query("SELECT timezones.offset FROM users left JOIN timezones ON users.tz=timezones.tid WHERE users.uid='$sessuserid'");
$tz = mysql_fetch_assoc($tz);
$tz = $tz['offset']; //Get offset in timezones
$sql = mysql_query("SELECT *, FROM_UNIXTIME(timestamp+(3600*($tz)), '%m/%d/%Y %h:%i %p') AS ts FROM mail WHERE uid='$sessuserid' AND mid='$mid'");
$row = mysql_fetch_array($sql);
?>
<form name="reply" action="mail.php?reply" method="POST">
<input type="hidden" name="to" value="<?=$row['sender']?>">
<input type="hidden" name="timestamp" value="<?=time()?>">
<? if (trim($row['subject']) == "") { $subject = "(No subject)"; }
else { $subject = $row['subject']; } ?>
<input type="hidden" name="subject" value="<?=$subject?>">
<input type="submit" value="Reply">
</form>
<table width="300" border="1" cellpadding="0" cellspacing="0" style="padding-left: 3px; border-collapse: collapse" bordercolor="#111111">
<tr>
<td>To:</td>
<td><a href="profile.php?username=<?=$row['reciever']?>"><?=$row['reciever']?></a></td>
</tr>
<tr class="altbg">
<td>From:</td>
<td><a href="profile.php?username=<?=$row['sender']?>"><?=$row['sender']?></a></td>
</tr>
<tr>
<td>Time:</td>
<td><?=$row['ts']?></td>
</tr>
<tr class="altbg">
<td>Subject</td>
<td><?=$row['subject']?></td>
</tr>
<tr>
<td colspan=2>
<?=$row['body']?>
</td>
</tr>
</table>
<?
} else if (isset($_GET['reply'])) { ?>
<center><form method="post" action="mail.php?send">
<b>To:</b> <?=$_POST['to'];?>
<input type="hidden" name="reciever" value="<?=$_POST['to'];?>">
<br><br>
<? $subject = preg_replace("/Re: /", "", $_POST['subject']);
$subject = stripslashes($subject);?>
<b>Subject:</b> <?=$subject;?>
<input type="hidden" name="subject" value="Re: <?=$subject;?>">
<br><br>
<b>Body</b>
<textarea name="body" rows="10" cols="80"></textarea>
<br>
<input type="submit" value="Send!">
</form></center>
<?
} else {
if (!isset($_GET['page'])) {
$page = 1;
}
else {
$page = $_GET['page'];
}
$tz = mysql_query("SELECT timezones.offset FROM users LEFT join timezones ON users.tz=timezones.tid WHERE users.uid='$sessuserid' LIMIT 1");
$tz = mysql_fetch_assoc($tz);
$time = $tz['offset']; //Get offset in timezones
$pagelimit = ($page - 1) * 20;
$sql = mysql_query("SELECT *, FROM_UNIXTIME(timestamp+(3600*($time)), '%m/%d/%Y %h:%i %p') AS ts FROM mail WHERE uid='$sessuserid' AND status!='1' ORDER by timestamp DESC LIMIT $pagelimit,20");
echo "<font face=\"Tahoma\" size=1>";
echo $unread;
echo " new messages in your mail box<br>";
echo "<a href=\"mail.php?compose\">Compose Mail</a>";
?>
<br>
<br>
<br>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1" width="400">
<tr border="0">
<form action="mail.php?delete" method="POST">
<td rowspan="20" border="1">
<font size=1 face="Tahoma"><center>
<b>Folders</b><br>
<?
$query = mysql_query("SELECT * FROM mail WHERE uid= '$sessuserid' GROUP by box");
while ($row = mysql_fetch_array($query)) {
$box = $row['box'];
$query2 = mysql_query("SELECT * FROM mail WHERE status!=1 AND reciever= '$sessuser' AND box='$box'");
$num = mysql_num_rows($query2);
echo $row['box']; echo " ("; echo $num; echo ")<br>";
}
?>
</td>
<? while ($row = mysql_fetch_array($sql)) {
?>
<?
$subject = $row['subject'];
$search = array ("/\>/si", // Strip out HTML tags
"/\</si", // Strip out HTML tags
"/\"/si"
);
$replace = array (">",
"<",
"""
);
$subject = preg_replace($search, $replace, $subject);
if (trim($row['subject']) == "") { $subject = "(No subject)"; } ?>
<td border="0">
<input type="checkbox" name="delete[<? echo $row['mid']; ?>]">
</td>
<td align="center" border="0"> <font size="1" face="Tahoma">
<? if ($row['unread'] == 1) { echo "<b>"; } echo "<a href=\"profile.php?username="; echo $row['sender']; echo "\">"; echo $row['sender']; echo "</a>"; ?>
</font> </td>
<td><p align="center"><font size="1" face="Tahoma"><? if ($row['unread'] == 1) { echo "<b>"; } echo "<a href=\"mail.php?read="; echo $row['mid']; echo "\">"; echo $subject; echo "</a>"; ?></td>
<td><p align="center"><font size="1" face="Tahoma"><? if ($row['unread'] == 1) { echo "<b>"; } echo $row['ts']; ?></td>
</tr>
<? } ?>
<input type="submit" value="Delete">
</form>
</table>
<br>
<br>
<table width="400" border="0">
<tr>
<td>
<center><font size="1" face="Tahoma"><? if ($page != 1) { ?>< <a href="mail.php?page=<?echo $page - 1;?>">Previous</a><? } ?> <? $numofrows = mysql_num_rows($sql); if ($numofrows == 20) { ?><a href="mail.php?page=<?echo $page + 1;?>">Next</a>><? } ?></center>
</td>
</tr>
</table>
<? } ?>
<? include("footer.php"); ?>