J'ai extrait des données de ma base de données et les ai affichées sur une page Web au format tableau. J'ai fourni un lien sur cette page qui permet à l'utilisateur de télécharger ces données sous forme de fichier CSV. Cela fonctionne correctement jusqu'à présent et lorsque l'utilisateur suit le lien sous les données affichées, il leur permet de le sauvegarder.Envoyer un fichier CSV par courrier électronique avec PHP
Il envoie également un e-mail avec le fichier CSV en pièce jointe. Cependant, le CSV dans la pièce jointe est vide et je ne sais pas pourquoi. Tout ce que je veux, c'est pour les données de la base de données qui est placé dans un fichier CSV téléchargeable pour aller aussi dans le CSV ci-joint et je ne peux pas le faire.
Quelqu'un pourrait-il m'aider?
Voici le code que j'ai jusqu'à présent:
// Create CSV file
fputcsv($output, array('Name', 'Branch', 'Website','Company', 'Question1', 'Question2', 'Question3', 'Question4', 'Question5'));
$mysql_connection = db_connect_enhanced('*******','******','******','******');
$query='SELECT * FROM ****.****';
$surveys = db_query_into_array_enhanced($mysql_connection, $query);
$count = count($surveys);
$data = array();
for($i=0; $i<=$count; $i++){
$data[] = array($surveys[$i]['FeedbackName'], $surveys[$i]['BranchName'], $surveys[$i]['FeedbackWebsite'], $surveys[$i]['FeedbackCompany'], $surveys[$i]['Question1'], $surveys[$i]['Question2'], $surveys[$i]['Question3'], $surveys[$i]['Question4'], $surveys[$i]['Question5']);
}
foreach($data as $row)
{
fputcsv($output, $row, ',', '"');
}
$encoded = chunk_split(base64_encode($data));
// create the email and send it off
$subject = "File you requested from RRWH.com";
$from = "***************";
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-Type: multipart/mixed;
boundary="----=_NextPart_001_0011_1234ABCD.4321FDAC"' . "\n";
$message = '
This is a multi-part message in MIME format.
------=_NextPart_001_0011_1234ABCD.4321FDAC
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Hello
We have attached for you the PHP script that you requested from http://rrwh.com/scripts.php
as a zip file.
Regards
------=_NextPart_001_0011_1234ABCD.4321FDAC
Content-Type: application/octet-stream; name="';
$message .= "surveys.csv";
$message .= '"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="';
$message .= "surveys.csv";
$message .= '"
';
$message .= "$encoded";
$message .= '
------=_NextPart_001_0011_1234ABCD.4321FDAC--
';
mail("*************", $subject, $message, $headers, "-f$from");
fclose($output);
Il se sent comme je suis si proche, mais je ne peux pas voir la réponse :(
Vous générez le fichier '$ output', mais je ne vois pas où vous l'attachez au courriel. – andrewsi
bien l'email envoie avec une pièce jointe au format CSV. c'est juste que cette pièce jointe est vide ... Excel ouvre avec une page blanche – user2381872
question de chemin, doit être. –