sql >> Databasteknik >  >> RDS >> Mysql

PHP-bilaga i e-post är tom

Det skulle ha hjälpt dig att titta på dina felloggar eller åtminstone inställningen

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);

eftersom det skulle ha sagt att base64_encode förväntar sig en sträng men $output är en resurs.

Försök ställa in

ob_start(); 

till början och

$output = ob_get_flush();

mellan dina fclose &$kodade rader.

har inte testat mailen än men det här borde hjälpa dig åtminstone lite :)

Jag testade den här koden och allt fungerade bra:

<?php
ob_start();
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=surveys.csv');

$output = fopen('php://output', 'w');
fputcsv($output, array('Name', 'Branch', 'Website','Company', 'Question1', 'Question2', 'Question3', 'Question4', 'Question5'));
$data = array();
$data[] = array('Name', 'Branch', 'Website','Company', 'Question1', 'Question2', 'Question3', 'Question4', 'Question5');

foreach( $data as $row )
{
    fputcsv($output, $row, ',', '"');
}
fclose($output);

$output = ob_get_flush();

$encoded = chunk_split(base64_encode($output));



  1. Hur man tar bort efterföljande blanksteg i MySQL

  2. Hur inaktiverar man MySQL root-inloggningar när inget lösenord tillhandahålls?

  3. Vad är det bästa sättet att implementera Polymorphic Association i SQL Server?

  4. Hitta värden som inte innehåller siffror i SQLite