1<?php 2verifyCsrfGetToken(); 3 4if (!empty($_SESSION['LoadDelay'])) { 5 sleep($_SESSION['LoadDelay']); 6} 7$status = ''; 8 9if (isset($_GET['domain'])) { 10 //Replace everything except alphanumerical chars and period. 11 $domain = preg_replace('@[^0-9a-z\.]+@i', ' ', $_GET['domain']); 12} 13if (isset($_GET['bounces'])) { 14 //make sure that bounces is integer. 15 $bounces = (int) $_GET['bounces']; 16} 17 18$ls = new WebblerListing(s('Domain statistics')); 19$ls->setElementHeading('Domain'); 20 21$sent = Sql_Query(sprintf("SELECT 22 COUNT(*) 23FROM 24 ( 25 SELECT 26 COUNT(email) 27 FROM 28 %s AS u 29 INNER JOIN 30 %s AS m ON u.id = m.userid 31 WHERE 32STATUS 33 = 'sent' AND email LIKE '%%$domain' 34GROUP BY 35 email 36) t", $GLOBALS['tables']['user'], 37 $GLOBALS['tables']['usermessage'], 'sent')); 38 39while ($row = Sql_Fetch_Row($sent)) { 40 $sent = $row[0]; 41} 42 43$viewed = Sql_Query(sprintf("SELECT 44 COUNT(*) 45FROM 46 ( 47 SELECT 48 COUNT(email) 49 FROM 50 %s AS u 51 INNER JOIN 52 %s AS m ON u.id = m.userid 53 WHERE 54STATUS 55 IS NOT NULL AND email LIKE '%%$domain' 56GROUP BY 57 email 58) t", $GLOBALS['tables']['user'], 59 $GLOBALS['tables']['usermessage'])); 60 61while ($row = Sql_Fetch_Row($viewed)) { 62 $viewed = $row[0]; 63} 64 65$bounceRate= sprintf('%0.2f', $bounces / $sent * 100)."%"; 66$viewRate= sprintf('%0.2f', $viewed / $sent * 100)."%"; 67 68$ls->addElement($domain); 69$ls->addColumn( 70 $domain, 71 s('Total bounced emails'), 72 number_format($bounces)); 73$ls->addColumn( 74 $domain, 75 s('Total sent emails'), 76 number_format($sent)); 77$ls->addColumn( 78 $domain, 79 s('Bounce rate'), 80 $bounceRate); 81$ls->addColumn( 82 $domain, 83 s('View rate').Help("viewrate"), 84 $viewRate); 85$status .= $ls->display(); 86