sql >> データベース >  >> RDS >> Mysql

メールのPHP添付ファイルが空です

    エラーログを確認したり、少なくとも設定したりするのに役立ちます

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

    base64_encodeは文字列を期待しますが、$outputはリソースであることがわかります。

    設定してみてください

    ob_start(); 
    

    最初に

    $output = ob_get_flush();
    

    fcloseと$encoded行の間。

    まだメールを試していませんが、これは少なくとも少しは役立つはずです:)

    このコードを試してみましたが、すべてうまくいきました:

    <?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. SQLデータベースからの単純ランダムサンプル

    2. JDBCが誤った数の影響を受ける行を返す

    3. $ _GETを使用して、PHPで同じ名前を使用して複数のパラメーターを取得する方法

    4. 2つのカウントクエリをそれらの比率に組み合わせる方法は?