sql >> Databáze >  >> RDS >> Mysql

Příloha PHP v e-mailu je prázdná

Pomohlo by vám podívat se na vaše protokoly chyb nebo alespoň nastavení

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

protože to by vám řeklo, že base64_encode očekává řetězec, ale $output je zdroj.

Zkuste nastavení

ob_start(); 

na začátek a

$output = ob_get_flush();

mezi řádky fclose &$encoded.

mail jsem ještě nezkoušela, ale tohle by ti mělo alespoň trochu pomoci :)

Zkoušel jsem tento kód a vše fungovalo dobře:

<?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. SqlParameter neumožňuje Název tabulky - další možnosti bez útoku sql injection?

  2. Java PreparedStatement a ON DUPLICATE KEY UPDATE:jak zjistím, zda byl řádek vložen nebo aktualizován?

  3. Ovladač PDO MySQL pro Mac

  4. Ověření hesla Postgres se nezdařilo