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"; ?>