HEX
Server: Apache
System: Linux msm5694.mjhst.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: camjab_ssh (1000)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: /home/httpd/html/nyloncams.com/public_html/admin/export_users.php
<?php
require "db.php";

if ($_POST['usersData'] && $_POST['delimiter'] && $_POST['export_format']) {
    $_POST = mysqli_real_escape_array($_POST);
    if ($_POST['export_format'] === 'csv') {
        header('Cache-Control: no-store, no-cache, must-revalidate');
        header('Cache-Control: post-check=0, pre-check=0', false);
        header('Pragma: no-cache');
        header('Content-Type: text/csv; charset=utf-8');
        header('Content-Disposition: attachment; filename=users_export-'.date('Y-m-d-H-i-s').'.csv');

        $output = fopen('php://output', 'w');

        $csv_values = explode(',', implode(',', $_POST['usersData']));
        $csv_columns = array();
        foreach ($csv_values as $value) {
            $csv_columns[] = $value;
            $mysql_fields .= $value . ', ';
        }

        $mysql_fields = substr($mysql_fields, 0, -2);

        fputcsv($output, array_map('strtoupper', $csv_columns), $_POST['delimiter']);

        $rows = dbQuery("SELECT * FROM users",false);

        foreach($rows as $row) {
            $csv_fields = array();
            $link = generateUrl('user', $row['username'], $row['record_num']);
            $row['url'] = $link;
			$custom = unserialize($row['custom']);
			foreach($custom as $k=>$v) { 
				$row[$k] = $v; 
			}
            foreach ($csv_columns as $value) {
                $csv_fields[] = $row[$value];
            }
            fputcsv($output, $csv_fields, $_POST['delimiter']);
        }

        fclose($output);
        exit();
    }
}
?>

<?php require "header.php"; ?>

<div class="content-page">

    <div class="header-area">

        <div class="breadcrumbs">  
            <a href="index.php">Admin Home</a>          
            <span><a href="export_users.php">Export Users</a></span>  
        </div>
    </div>
    
    <div class="content-outer">
        
        <h2>Export<strong>Users</strong></h2>
        
        <div class="content-inner">
            <form action="" method="POST" enctype="multipart/form-data" class="form" novalidate autocomplete="off">
                <table class="pagetable">
                    <thead>
                        <tr>
                            <th colspan="2">Export Criteria</th>
                        </tr>
                    </thead>
                    <tr>
                        <td>User Data</td>
                        <td>
                            <?php 
							$usersData = array('username', 'email', 'user_level', 'avatar', 'location', 'age', 'gender', 'date_joined', 'description', 'name', 'phone', 'im', 'im_type', 'program_name', 'program_url', 'freeform', 'enabled', 'country', 'lastlogin', 'validate', 'backlink', 'banner', 'premium', 'tokens', 'custom', 'facebook_id', 'twitter_id', 'record_num', 'url'); 
							foreach($custom_user_fields as $k=>$v) { 
								$usersData[] = $k; 
							}
							?>
                            <select name="usersData[]" multiple="multiple">
                                <?php foreach ($usersData as $urow) { ?>
                                    <option value="<?php echo $urow; ?>" selected="selected"><?php echo $urow; ?></option>
                                <?php } ?>
                            </select>
                            <p class="hint">(Hold CTRL to make multiple selections)</p>
                        </td>
                    </tr>                    
                    <tr>
                        <td>Field Delimiter</td>
                        <td>
                            <select name="delimiter">
                                <option value="|">|</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>Export format</td>
                        <td>
                            <select name="export_format">
                                <option value="csv">CSV</option>
                            </select>
                        </td>
                    </tr>
                    <tr class="item submit">
                        <td colspan="2">
                            <button type="submit" class="btn action-save no-process">Export</button>
                        </td>
                    </tr>
                </table>
            </form>
        </div>
    </div>
</div>

<?php require "footer.php"; ?>