У меня есть страница, на которой очень просто. Есть кнопка, которая при нажатии заставляет CSV загрузить. Эта часть работала за исключением одной вещи. Файл загружается сразу после загрузки страницы.
Чтобы устранить это, я добавил оператор isset. Кроме того, страница не загружается. На странице есть очень старые ошибки, которые точно не должны отображаться. Я даже создал новый файл и добавил код. Страница даже не загружается. Файл просто загружается, а затем все останавливается.
Кто-нибудь видит, что может быть причиной этого?
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$file_name = "subscriber_list.csv";
$file = fopen("subscriber_list.csv","w");
try {
$servername = 'localhost';
$usernameCon = '';
$passwordCon = '';
$con = new PDO('mysql:host='.$servername.';dbname=', $usernameCon, $passwordCon);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql_subscribers = "
SELECT first_name, last_name, phone, email, new_mowers, used_mowers, date_subscribed
FROM test_notif
ORDER BY date_subscribed
";
$subscriber_stmt = $con->prepare($sql_subscribers);
$subscriber_stmt->execute();
$subscriber_rows = $subscriber_stmt->fetchAll(PDO::FETCH_ASSOC);
if (isset($_POST['submitbutton'])) {
foreach ($subscriber_rows as $subscriber_row) {
//fputcsv($file,explode(',',$subscriber_row));
fputcsv($file, $subscriber_row);
}
}
header('Content-type: application/octet-stream');
header("Content-Disposition: attachment; filename='.$file_name.'");
fclose($file);
readfile($file_name);
exit;
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
<body>
<form action="" name="csvForm" method="POST">
<input type="submit" value="Download File" name="submitbutton">
</form>
</body>
</html>