PHP Oluşturulan Excel sayfası local de calışıyor fakat sunucu da çalışmıyor
Php ile veritabanında ki bilgileri excele aktarıyorum ve bir excel dosyası oluşturuyorum ve indiriyorum.
Localhostta gayet normal çalışırken server tarafında bana excele yazılacak verileri çıktı olarak veriyor ve herhangi bir excel oluşturup indirmiyor.
<?php
class Excel {
private $fp=null;
function __construct()
{
$this->fp = fopen('php://output', 'w');
}
function doldur($data=array()){
//UTF-8 Excel
fputs($this->fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
if ($this->fp)
{
foreach($data as $d)
{
if(!isset($isaret)) {
fputcsv($this->fp,array_keys($d), ";");
$isaret = true;
}
fputcsv($this->fp, $d, ";");
}
}
fclose($this->fp);
}
function kaydet($dosya){
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-Type: text/csv');
header("Content-Disposition: attachment; filename=$dosya.csv;");
header('Content-Transfer-Encoding: binary');
}
}
?>
Excel oluşturmak için kullandığım class bu.
include "excel.php";
$dsn = 'mysql:dbname=x;host=localhost';
$kullanici = 'root';
$sifre = '';
try {
$baglanti = new PDO($dsn, $kullanici, $sifre);
} catch (PDOException $e) {
echo 'Bağlantı kurulamadı: ' . $e->getMessage();
}
$sorgu=$baglanti->prepare("SELECT * FROM x");
$sorgu->execute();
$liste=$sorgu->fetchAll(PDO::FETCH_ASSOC);
$excel =new Excel();
$excel->doldur($liste);
$excel->kaydet("gonulluler");
Bu da classı kullandığım sayfa.
Benzer bir yolla word dosyası da oluşturup indiriyorum on da herhangi bir sorun olmuyor.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!