123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?php
- #declare(strict_types=1);
-
- if (!check_perms('users_view_ips') || !check_perms('users_view_email')) {
- error(403);
- }
-
- View::show_header('Registration log');
- define('USERS_PER_PAGE', 50);
- list($Page, $Limit) = Format::page_limit(USERS_PER_PAGE);
-
- $AfterDate = isset($_POST['after_date']) ? $_POST['after_date'] : null;
- $BeforeDate = isset($_POST['before_date']) ? $_POST['before_date'] : null;
- $DateSearch = false;
-
- if (!empty($AfterDate) && !empty($BeforeDate)) {
- list($Y, $M, $D) = explode('-', $AfterDate);
- if (!checkdate($M, $D, $Y)) {
- error('Incorrect "after" date format');
- }
-
- list($Y, $M, $D) = explode('-', $BeforeDate);
- if (!checkdate($M, $D, $Y)) {
- error('Incorrect "before" date format');
- }
-
- $AfterDate = db_string($AfterDate);
- $BeforeDate = db_string($BeforeDate);
- $DateSearch = true;
- }
-
- $RS = "
- SELECT
- SQL_CALC_FOUND_ROWS
- m.ID,
- m.IP,
- m.Email,
- m.Username,
- m.PermissionID,
- m.Uploaded,
- m.Downloaded,
- m.Enabled,
- i.Donor,
- i.Warned,
- i.JoinDate,
- im.ID,
- im.IP,
- im.Email,
- im.Username,
- im.PermissionID,
- im.Uploaded,
- im.Downloaded,
- im.Enabled,
- ii.Donor,
- ii.Warned,
- ii.JoinDate
- FROM users_main AS m
- LEFT JOIN users_info AS i ON i.UserID = m.ID
- LEFT JOIN users_main AS im ON i.Inviter = im.ID
- LEFT JOIN users_info AS ii ON i.Inviter = ii.UserID
- WHERE";
-
- if ($DateSearch) {
- $RS .= " i.JoinDate BETWEEN '$AfterDate' AND '$BeforeDate' ";
- } else {
- $RS .= " i.JoinDate > '".time_minus(3600 * 24 * 3)."'";
- }
-
- $RS .= "
- ORDER BY i.Joindate DESC
- LIMIT $Limit";
-
- $QueryID = $DB->query($RS);
- $DB->query('SELECT FOUND_ROWS()');
- list($Results) = $DB->next_record();
- $DB->set_query_id($QueryID);
- ?>
-
- <form action="" method="post" class="box pad">
- <input type="hidden" name="action" value="registration_log" />
- Joined after: <input type="date" name="after_date" />
- Joined before: <input type="date" name="before_date" />
- <input type="submit" class="button-primary" />
- </form>
-
- <?php
- if ($DB->has_results()) {
- ?>
- <div class="linkbox">
- <?php
- $Pages = Format::get_pages($Page, $Results, USERS_PER_PAGE, 11) ;
- echo $Pages; ?>
- </div>
-
- <table width="100%">
- <tr class="colhead">
- <td>User</td>
- <td>Ratio</td>
- <td>Email</td>
- <td>IP address</td>
- <td>Country</td>
- <td>Host</td>
- <td>Registered</td>
- </tr>
-
- <?php
- while (list($UserID, $IP, $Email, $Username, $PermissionID, $Uploaded, $Downloaded, $Enabled, $Donor, $Warned, $Joined, $InviterID, $InviterIP, $InviterEmail, $InviterUsername, $InviterPermissionID, $InviterUploaded, $InviterDownloaded, $InviterEnabled, $InviterDonor, $InviterWarned, $InviterJoined) = $DB->next_record()) {
- $RowClass = $IP === $InviterIP ? 'warning' : '';
- $Email = apcu_exists('DBKEY') ? Crypto::decrypt($Email) : '[Encrypted]';
- $IP = apcu_exists('DBKEY') ? Crypto::decrypt($IP) : '[Encrypted]';
- $InviterEmail = apcu_exists('DBKEY') ? Crypto::decrypt($InviterEmail) : '[Encrypted]';
- $InviterIP = apcu_exists('DBKEY') ? Crypto::decrypt($InviterIP) : '[Encrypted]'; ?>
-
- <tr class="<?=$RowClass?>">
- <td>
- <?=Users::format_username($UserID, true, true, true, true)?><br />
- <?=Users::format_username($InviterID, true, true, true, true)?>
- </td>
-
- <td>
- <?=Format::get_ratio_html($Uploaded, $Downloaded)?><br />
- <?=Format::get_ratio_html($InviterUploaded, $InviterDownloaded)?>
- </td>
-
- <td>
- <span class="float_left">
- <?=display_str($Email)?>
- </span>
-
- <span class="float_left">
- <?=display_str($InviterEmail)?>
- </span>
-
- </td>
-
- <td>
- <span class="float_left">
- <?=display_str($IP)?>
- </span>
-
- <span class="float_left">
- <?=display_str($InviterIP)?>
- </span>
- </td>
-
- <td>
- <?=Tools::get_host_by_ajax($IP)?><br />
- <?=Tools::get_host_by_ajax($InviterIP)?>
- </td>
-
- <td>
- <?=time_diff($Joined)?><br />
- <?=time_diff($InviterJoined)?>
- </td>
- </tr>
- <?php
- } ?>
- </table>
-
- <div class="linkbox">
- <?= $Pages; ?>
- </div>
- <?php
- } else { ?>
- <h2>There have been no new registrations in the past 72 hours.</h2>
- <?php
- }
- View::show_footer();
|