Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Załącznik PHP w wiadomości e-mail jest pusty

Pomogłoby ci to zajrzeć do dzienników błędów lub przynajmniej ustawić

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

ponieważ to powiedziałoby ci, że base64_encode oczekuje ciągu, ale $output jest zasobem.

Wypróbuj ustawienie

ob_start(); 

do początku i

$output = ob_get_flush();

między fclose i $zakodowanymi liniami.

nie próbowałem jeszcze poczty, ale to powinno ci przynajmniej trochę pomóc :)

Wypróbowałem ten kod i wszystko działało dobrze:

<?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przenieś węzeł w drzewie zestawów zagnieżdżonych

  2. Zrozumienie zestawów znaków i sortowania w MySQL

  3. Jak za pomocą mysqli napisać bezpieczne zapytanie SELECT, które ma zmienną liczbę wartości podanych przez użytkownika?

  4. Połączenie MySQL przez tunel SSH - jak określić inny serwer MySQL?

  5. Połącz się z Amazon RDS za pomocą PHP