My code:
<form action="" method="GET">
<p><input name="date_start" type="text" id="datestart" /> to
<input name="date_end" type="text" id="dateend" /></p>
<button type="submit">Generate!</button>
</form>
<?php
if ($_GET["date_start"] && $_GET["date_end"]) {
$users_list = mysql_query("my query", $dbc) or die(mysql_error());
$output = fopen("php://output", 'w') or die("Can't open php://output");
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=user_list.csv");
fputcsv($output, array("First Name", "Last Name", "Email", "Mobile", "Site"));
while ($row = mysql_fetch_assoc($users_list)) {
fputcsv($output, $row);
}
fclose($output) or die("Can't close php://output");
}
?>
Basically I'm sending my FORM to the same page, below the form I check for my GET variables and try to force a CSV file download, but instead of downloading, the content of my query is simply being printed.
I think this is because my headers have already been sent, but is there a way to download the file at all?