Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[ASK] Permasalahan Transaction Report

Hello kawan2 semua yg disini.. saya baru nih disini.. 
Saya kan lagi magang nih, saya di kasih tugas untuk Transaction report lalu diberi query.sql.

Tugasnya disuruh : bikin transaction report entar hasil querynya di export jadi jadi .xls (file excel), terus file tersebut akan dikirim secara otomatis dan terjadwal setiap hari dan setiap jam 9 pagi ke email tujuan. 
pertanyaan saya : gimana yah caranya agar file yg terdownload otomatis itu bakalan ke download dalam 1 folder atau temporary tertentu, jadi entar script yg untuk kirim file ke email tujuan bisa ambil file yg terdownload itu sebagai attachment. 

ini kode exportexcel.php -> yg kalo dijalankan langsung download hasil file dari 'showtable2.php' dalam bentuk excel
<pre lang="php">
<?php //Fungsi header dengar mengirimkan raw data excel 
header("Content-type: application/vnd-ms-excel"); 

// Mendefinisikan nama file export "hasil-export-harian.xls" 
header("Content-Disposition: attachment; filename=hasil-export.xls"); 

//memasukkan table yang telah dibuat di file showtable2.php 
include 'showtable2.php';  
$var_export = $result; 

$result = "hasil-export.xls"; 
?> < /pre> 

terimakasih untuk semua yg telah membantu dan maaf saya long post atau salah tempat posting. 
«1

Tanggapan

  • edited March 2015
    -karena penuh saya tulis lagi lanjutannya.-

    Untuk masalah nampilin tabel saya sudah bisa, lalu kirim email pake sendgrid jga sudah bisa, terus masalah export juga sudah bisa tapi kalo dijalanin scriptnya dia akan langsung download file dalam bentuk .xls 

    ini kode mail.php -> untuk kirim email dari php pakai sendgrid.

    <?php
    require 'PHPMailerAutoload.php';
    include 'exportexcel.php';

    $mail = new PHPMailer;

    //$mail->SMTPDebug = 3;                              // Enable verbose debug output

    $mail->isSMTP();                                     // Set mailer to use SMTP
    $mail->Host = 'smtp.sendgrid.net'; //smtp2.example.com'; // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                              // Enable SMTP authentication
    $mail->Username = 'USERNAME';                 // SMTP username
    $mail->Password = 'PASSWORD';                     // SMTP password
    $mail->SMTPSecure = 'tls';                           // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 25;                                    // TCP port to connect to

    $mail->From = 'name@sendgrid.net';
    $mail->FromName = 'name';
    $mail->addAddress('name@yahoo.com', 'name');     
    $mail->addReplyTo('noreply@google.com', 'Information');
    $mail->addCC('');
    $mail->addBCC('');

    $mail->addAttachment('hasil-export.xls');
    $mail->isHTML(true);                                  // Set email format to HTML

    $mail->Subject = 'Report Today';
    $mail->Body    = 'Report Transaction <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    if(!$mail->send()) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }
    ?>

    oh iya saya juga mau tanya, kalo untuk kirim email secara terjadwal pakai cron yah? saya pake windows, tapi kata supervisornya harus pake cronjob gak boleh pake task scheduler. Ada yg mau berbaik hati kasih contoh pemakaiannya?  soalnya saya sudah cari di google, kebanyakan contohnya pakai task scheduler atau yg buat linux.
  • edited March 2015
    supervisor nya geblek
    cron di linux itu sama dengan task scheduler di windows

    cron cuma ada di linux
    task scheduler cuma ada di windows



    cuma orang yg kurang kerjaan yg pake :
    - emulator / bridge
    - aplikasi pihak ketiga
    hanya utk pakai / menjalankan fungsi tertentu
    padahal sebenernya fungsi itu sudah ada di sistem sebagai bawaan

    itu namanya cuma menambah beban sistem, beban memori dan beban proses cpu
  • oh gituh yah mas..

    btw, gimana yah mas supaya pas jalanin script exportexcel.php itu, langsung kedownload di folder tertentu atau temporary? terus nama file yg kedownload itu sesuai dengan tanggal pas di jalanin scriptnya...?

    saya sudah cari2 tapi masih bingung juga..
  • laporan excel elo ini beneran file excel ?
    atau cuma html yg elo beri header excel ?
    atau file csv ?
  • bukan, tapi dari hasil query ke tabel db.. nah hasil query itu entar di export ke bentuk excel (.xls).

    :: update::

    -untuk hasil save file sesuai tanggal hari udah bisa mas..

    -yang kurang tinggal simpan file nya itu ke dalam folder atau temporary itu, biar entar bisa di panggil pake script mail.php sebagai file attachment di emailnya.
  • bukan gitu ...

    php itu bisa mengeluarkan bentuk laporan berupa file excel, tapi ...
    file excel nya ini file excel apa ?

    beneran file excel ?
    file html yg diberi header excel ?
    atau file csv ?

    * gw juga tau mas ini file excel hasil generate dari data db *
  • hasil outputnya beneran file excel mas, bentuknya .xls..
  • edited March 2015
    * kok kagak paham juga to yoooo ... * :))

    liat itu file excel beneran atau bukan itu bukan dari ekstensi nya maassss ...
    tapi dari proses pembentukannya



    http://www.filedropper.com/excelsample

    tuh, contoh file excel
    gw kagak bahas proses nya
    tapi gw tunjukin hasil akhir nya

    itu kolom E dan F isinya formula
    selain file yg bener-bener excel, kagak bisa simpan formula

    kalo mau, semua contoh model yg gw tunjukin bisa di generate dari php
    dan semuanya bisa dibuka pake excel
    cuma ada bedanya

    [1]
    csv.xls -> ini file csv, kagak bisa simpan formula
    kalo dibuka pake text editor, isinya kaya begini :
    A,aaa,1,100,101
    B,bbb,2,49,51
    C,ccc,3,76,79
    D,ddd,4,67,71
    E,eee,5,79,84

    [2]
    excel-xls.xls -> ini format excel 97-2003, karena emang file excel, bisa simpan formula
    kalo dibuka pake hex editor, bagian atas header nya kaya begini :
    00000000h: D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00 ; ÐÏ.ࡱ.á........

    [3]
    excel-xlsx.xls -> ini format excel 2007-..., karena emang file excel, bisa simpan formula
    kalo dibuka pake hex editor, bagian atas header nya kaya begini :
    00000000h: 50 4B 03 04 14 00 06 00 08 00 00 00 21 00 9E 6F ; PK..........!.žo

    [4]
    html.xls -> ini file html, kagak bisa simpan formula
    kalo dibuka pake text editor, bagian atas isinya kaya begini :
    <html>
    <head>
    </head>
    <body>
    <table border=0 cellpadding=0 cellspacing=0 width=384>
     <col width=64 span=6 style='width:48pt'>
     <tr height=20 style='height:15.0pt'>
      <td height=20 width=64 style='height:15.0pt;width:48pt'></td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
      <td width=64 style='width:48pt'></td>
     </tr>

    [5]
    mhtml.xls ->
    ini sebenernya juga file html,
    tapi dgn kondisi seluruh file terkait digabung ke dalam file yg sama
    formatnya mirip email
    karena ini juga file html, jadi juga kagak bisa simpan formula

    kalo dibuka pake text editor, bagian atas isinya kaya begini :

    MIME-Version: 1.0
    X-Document-Type: Workbook
    Content-Type: multipart/related; boundary="----=_NextPart_01D0623E.6CFDC850"



    kenapa gw tunjukin ini ...

    karena yg namanya report itu kalo outputnya excel
    bukan melulu memindah datagrid dari database ke excel dalam bentuk tulisan apa adanya
    supaya dinamis, yg emang harus ditulis dalam bentuk formula, juga beneran mesti ditulis dalam bentuk formula

    misal, yg harus ditulis dalam bentuk formula :
    - perkalian jumlah barang x harga, hasilnya jumlah harga
    - jumlah total harga
    - jumlah absen di laporan absensi
    dll



    kenapa gw ribet nanyain ini ...

    karena dari awal elo sudah bilang ini laporan yg digenerate otomatis
    dan dikirim otomatis juga

    dan gw yakin, banyak yg semestinya emang harus ditulis dalam bentuk formula
    karena saat file excel dibuka, masih dimungkinkan utk di edit
    dan hasil yg semestinya berubah secara otomatis, beneran akan berubah secara otomatis
    soalnya formula nya beneran jalan



    paham atau kagak ?

    jadi, balik ke pertanyaan gw semula ...

    beneran file excel ?
    file html yg diberi header excel ?
    atau file csv ?
  • oh gituh.. sorry mas ane gak ngerti haha..

    kalo file .xls ane buka pake text editor kayak notepad++ hasilnya => file html yg diberi header excel.

    ini ss nya: 
    image


    dan ini

    image


  • lha gini pan jelas ...
    sekarang gw tanya butuh elo dulu ...

    emang cukup pake html ?
    atau butuh yg beneran excel ?
  • sepertinya bagusan yg beneran excel deh mas..  takutnya yg pake html dibilang salah entar.. hehe
  • ini elo pan magang ...

    gw tanya
    apa yg boleh elo lakuin ? dan apa yg tidak ?
    dimana aplikasi elo ini dijalankan ?
    di komputer elo sendiri ?
    atau di komputer tempat elo magang ?

    elo boleh install aplikasi baru atau tidak ?
  • iya magang..

    gw dikasih sql nya doang sama supervisornya, terus disuruh perintah kayak yg gw jelasin diatas...

    gw kerjain + jalanin ini di laptop gw..

    kalo pake aplikasi baru kayaknya gak boleh, harus real coding gituh.. tapi kalo pake service kayak sendgrid gituh sih boleh, mas..
  • edited March 2015
    sendgrid itu malah kagak perlu

    yg elo pake itu script nya phpmailer
    dan kalo pake phpmailer, itu mah cukup pake akun email gmail buat dijadiin tukang pos

    emang nantinya, kalo sudah selesai, koding elo dipindah ke komputer tempat elo magang ?

    atau tetap di laptop elo ?
    selesai magang, ya sudah, aplikasi tetep elo bawa
  • dipindahin ke komputer tempat magang...

    iya pake php mailer, tapi username, password sama $mail -> host nya itu pake akun sendgrid. hehe..

    kalo kirim mail.php nya pake coding yg looping gituh bisa gak yah? jadi di loopingnya di bikin timer gituh..
  • ngapain pake sendgrid ... cuma dibatasi 400 email per hari
    bikin aja akun gmail, gratis
    sudah bisa dipake buat kirim email

    kalo mesti dipindah ...
    kayanya kagak ada cara lain
    generate excel nya pake https://phpexcel.codeplex.com/

    cuma, sebenernya kalo os server pake linux
    mestinya bawaan itu sudah ada libreoffice
    harusnya bisa dipake
    dan itu lebih baik ketimbang pake librari script php

    kalo masalah timer
    ya pake task scheduler, kagak perlu cara lain
    kalo dipindah ke server, baru pake cron
  • oh gituh yah mas.. tapi kayaknya entar kalo masalah email, tergantung orang sono nya entar mau pindahin ke gmail atau pakai server mereka.

    kalo timer saya pake task scheduler dulu deh.. kalo pas dikasihnya mereka pake linux baru diganti pake cron...

    kalo misalnya save file excelnya itu ke temporary atau folder, biar bisa diambil file excelnya dari folder tersebut gimana yah? script save file ke temporarynya di taruh di exportexcel.php
  • kagak perlu seribet itu ...

    gw anggap dah isi excel sudah berhasil elo buat
    bukan elo simpan jadi file
    cukup elo tampung di variable $isi_attachment

    cukup di script phpmailer nya ...
    bukan pake :
    $mail->addAttachment('hasil-export.xls');

    tapi pake :
    $mail->addStringAttachment($isi_attachment,'terserah-nama-filenya-apa.xls');

    kagak perlu save jadi file
    simpan ke folder tertentu
    lalu dibaca lagi
    baru di attach kan
  • iya. isi excel memang sudah dibuat. tapi saya mau jangan di download tapi disimpan dalam folder temporary server dan seletah di simpan di folder temporary lalu diambil lagi untuk dikirim lewat email.
    apa perintah di atas bisa seperti itu ?


    kalau perintah diatas kan memang buat mengambil filenya dari folder temporary untuk dikirim sebagai attachment di email.

    lalu bagaimana solusi comanndnya yaaaa?
  • edited March 2015
    ngapain pake acara disimpan di folder sementara ?

    elo paham tulisan gw apa kagak to ?
    yg nulis ttg download ya siapa to mas ?

    kalo bisa langsung kirim, ngapain pake acara disimpan di folder sementara ?

    kagak perlu disimpan jadi file
    langsung kirim saja, nama file langsung melekat jadi parameter



    simple, kagak pake ribet
    dan cukup pake gmail : https://support.google.com/a/answer/176600?hl=en
    kirim 2000 email per hari, gratis


    <?php
    $attachment='<html><head><title>Sample</title></head><body><table><tr><td>Sample data</td></tr></table></body></html>';

    require 'PHPMailerAutoload.php';
    $mail=new PHPMailer;
    $mail->isSMTP();
    $mail->Host='smtp.gmail.com';
    $mail->SMTPAuth=true;
    $mail->Username='account@gmail.com';
    $mail->Password='2-step-gmail-app-password';
    $mail->SMTPSecure='ssl';
    $mail->Port=465;

    $mail->setFrom('from@email.com', 'Sender');
    $mail->addAddress('to@email.com', 'Recipient');
    $mail->Subject='PHPMailer mail() test';

    $mail->msgHTML('This is a <b>HTML</b> message body');
    $mail->AltBody='This is a plain-text message body';
    $mail->addStringAttachment($attachment,'sample.xls');

    if (!$mail->send()) {
      echo "Mailer Error: ".$mail->ErrorInfo;
    } else {
      echo "Message sent!";
    }
    ?>

    image

    apa perlu di save jadi file sebelum di attach kan ?
  • oh iya mas. makasih banyak.
    tapi yang jadi masalah sebenernya adalah pas export table ke excel itu kan biasanya pake header attachment yang langsung otomatis kedownload, nah saya disuruh untuk menyimpan file .xlsnya itu ke folder temporarynya server bukan ke download ke pc. gtu mas. kan kalo biasanya langsung kedownload kan hasil exportnya.

    maksud saya yang disini ini mas :
    <?php //Fungsi header dengar mengirimkan raw data excel 
    header("Content-type: application/vnd-ms-excel"); 

    // Mendefinisikan nama file export "hasil-export-harian.xls" 
    ini kan langsung otomastis kedownload.->header("Content-Disposition: attachment; filename=hasil-export.xls");
    nah gimana caranya ya mas biar hasilnya itu masuk ke folder temporary, yang akhirnya bisa di panggil sebagai attachment di mailnya gtu mas..

    //memasukkan table yang telah dibuat di file showtable2.php 
    include 'showtable2.php';  
    $var_export = $result; 

    $result = "hasil-export.xls"; 
    ?>
  • edited March 2015
    kagak butuh header

    perintah header elo itu cuma ...

    yg satu memaksa konten html supaya dianggap xls
    yg satunya lagi memaksa merubah nama file jadi nama tertentu

    header elo itu 2-2 nya baru bener kalo dipake di script utk download

    bukan utk script attachment email
    bukan juga di script simpan jadi file



    "nah gimana caranya ya mas biar hasilnya itu masuk ke folder temporary, yang akhirnya bisa di panggil sebagai attachment di mailnya gtu mas.."

    buat apa to ?
    apa perlunya disimpan jadi file di folder temporary kalo elo bisa langsung attach tanpa repot-repot ?

    itu pan cuma nambah-nambahin proses, cuma berat-beratin resource
    kecuali kalo file mau disimpan permanen, bukan temporary

    kalo namanya temporary pan bakal di hapus lagi
    selesai dikirim lewat email, file dihapus lagi
    lha ngapain ?
  • edited March 2015
    susah kayanya kalo jelasin ke elo kagak lewat contoh ...



    kalo simpan jadi file :
    <?php
    $konten='<html><head><title>Sample</title></head><body><table><tr><td>Sample data</td></tr></table></body></html>';

    file_put_contents('sample.xls',$konten);
    ?>
    selesai, blas kagak perlu header



    script download :
    <?php
    if(isset($_GET['act']) && $_GET['act']=='download') {
      $konten='<html><head><title>Sample</title></head><body><table><tr><td>Sample
    data</td></tr></table></body></html>';

      header('Content-Disposition: attachment; filename="sample.xls"');
      header('Content-Type: application/vnd.ms-excel');
      echo $konten;
      die();
    }
    ?>
    <a href="?act=download">download</a>
    ini baru bener kalo pake header
  • nah makannya itu. kalo misalnya saya maunya gak download tapi mau dimasukin di tampungan supaya bisa diambil sebagai attachment email gimana yah. tanpa harus download ke pc.
    ??
  • posting gw dibaca atau gak to ?

    sudah dikasih contoh masih nanya ? * doh * #-o



    lagian juga sudah bolak-balik ditanyain :
    - disimpan jadi file itu buat apa ?
    - butuhnya buat apa ?
    - kalo selesai dikirim lewat email, trus file nya mau diapain ?
  • oh sorry mas, tadi gak kebaca yg bawahnya.. oke dicoba dulu mas...
  • mas. udah dicoba dan hasilnya gak bisa.
    kan table yg diatas itu kan table yang dibuat di html. kalo yang saya punya pakai database. kaya gini nih mas:

    <?php

    $coba= '<html>
    <head></head>
    <body>
    <?php   
    $dbHost = "localhost";   
    $dbUser = "root";   
    $dbPass = "";   
    $dbName = 'testmatahari';   
     
    // membuat koneksi mysql   
    $conn = mysql_connect($dbHost, $dbUser, $dbPass, $dbName);   
     
    // Mengecek koneksi mysql   
    //if (!$conn) die("Koneksi Gagal: " . mysql_error());   
    //else echo "Koneksi MySQL Berhasil ...<br/>";    
     
    //membuat koneksi database    
    $dbSelected = mysql_select_db($dbName, $conn);     
     
    // Mengecek koneksi database   
    //if (!$dbSelected) die ('Koneksi Gatabase Gagal: ' . mysql_error());   
    //else echo "Koneksi Database ".$dbName." Berhasil ...<br/>";     
     
    //membuat query membaca record dari tabel User 

    //$sql = "include 'query.sql'";
    //$query = mysql_query( $sql );  
    $query="select po_number,vendor_sku,variant_sku,
    CONCAT(
     d.name,
     IFNULL(CONCAT(' - ', c.size), ''),
     IFNULL(CONCAT(' - ', c.color), '')
     )
     AS 'Product Description',qty

     from moris_purchase_order a
    INNER JOIN moris_purchase_order_item b on a.id=b.purchase_id
    inner join moris_product_variant c on b.variant_sku = c.sku
    inner join moris_product d on d.id=c.product_id
    ";   

    //menjalankan query    
    if (mysql_query($query)) {    
    $result=mysql_query($query);   
    } else die ("Error menjalankan query". mysql_error());    
     
    //mengecek record kosong   
    if (mysql_num_rows($result) > 0)   
    {   
         //menampilkan hasil query  
        ?>
        <table border ="1">
           <center>
           <tr> <th colspan="5"><h2>TRANSACTION REPORT HARIAN</h2></th>
           </tr>
           </center>
           <tr>
           <td><p> PO NUMBER <p></td>
           <td><p>VENDOR SKU</p></td>
           <td><p>VARIANT SKU</p></td>
           <td><p>DESCRIPTION PRODUCT</p></td>
           <td><p>QTY</p></td>
           </tr>
        <?php   
         while($row = mysql_fetch_array($result)) {
        ?>
         <tr>
           <td>
           <?php
           echo $row["po_number"] . "</b><br/>"; 
           ?>   
           </td>
           <td>
           <?php
           echo $row["vendor_sku"] . "<br/>"; 
           ?>
           </td>
          
           <td>
           <?php
           echo $row["variant_sku"] . "<br/>"; 
           ?>
           </td>
           <td>
           <?php
           echo $row["Product Description"] . "<br/>"; 
           ?>
           </td>
           <td>
           <?php
           echo $row["qty"] . "<br/>"; 
           ?>
           </td>
           </tr>
        <?php    }    
    }   
    else echo "Tidak ada Record didalam tabel";   
      ?>
       </table>
      <?php
    //menutup koneksi mysql   
    mysql_close($conn);   
    ?>   
    </body>
    </html>';

  • ya salah ...
    mana bisa di dalam string elo menjalankan koding php

    ini elo mau buat apa to ?
  • nah makannya itu. ndak bisa kan..
    saya lagi buat laporan report yang di tampilkan pada file.xls dari hasil query table yang di buat di database lalu hasil dari export / file.xls itu mau saya kirim lewat email ke email bos saya. gtu. jadi bagaimana solusinya ya??
  • edited March 2015
    "ndak bisa" ini maksudnya apa ?

    kalo koding yg elo tulis, jelas elo yg salah

    <?php
    $a='aaa';
    $b='bbb <?php echo $a; ?> ccc';

    echo $b;
    ?>
    jelas salah

    <?php
    $a='aaa';
    $b='bbb '.$a.' ccc';

    echo $b;
    ?>
    bener ...



    <?php
    $a=array('aaa1','aaa2','aaa3');
    $b='bbb
    <?php foreach($a as $v) echo $v; ?>
    ccc';

    echo $b;
    ?>
    jelas salah

    <?php
    $a=array('aaa1','aaa2','aaa3');
    $b='bbb ';
    foreach($a as $v) $b=$b.$v;
    $b=$b.' ccc';

    echo $b;
    ?>
    bener ...



    ini mah bukan masalah "bisa" atau "ndak bisa"

    tapi masalah syntax yg ditulis bener atau kagak
    kalo syntax nya bener ... mungkin bisa gw bilang : PASTI BISA
  • mas
    ini script saya udah bisa berjalan dengan baik. TAPI yang hasil exportmya itu saya maunya gak di download ke p-c. langsung bisa di jadiin attachment aja buat langsung dikirim keemail.

    gtu mas. kalo masalah script gak ada masalah.
    masalahnya hanya hasil export mau saya langsung jadiin attachment email gimana caranya mas. ???
  • * doh *

    sudah dipaparin banyak petunjuk
    kok masih belum nyambung juga ...

    exportexcel.php
    elo emang isinya apa to ?
  • cuma buat download file.xls sama kasih namanya aja.
    nah skrg caranya biar hasil filenya itu bisa di pake buat attachment email gimana caranya.

    table saya itu dari database. bukan tabel bikinan di html ya.
  • edited March 2015
    tinggal elo posting kemari isi exportexcel.php apa susahnya to mas ?

    apa bedanya data dari table database atau data yg sudah ada di tabel html ?
    toh data yg elo tarik dari database bakal elo generate jadi tabel html
    dan tabel html itu yg bakal elo attach di email

    emang elo mau attach table database di email ?



    yg ditunjukin ke elo itu hasil akhirnya : HTML
    elo yg mesti berpikir bagaimana proses buat menghasilkan hasil akhir itu



    masalah file, sudah bolak-balik ditanyakan
    kagak pernah elo jawab
    jadi gw abaikan
  • edited March 2015
    database
    CREATE TABLE `data` (
      `id` bigint(10) unsigned NOT NULL AUTO_INCREMENT,
      `nama` varchar(255) DEFAULT NULL,
      `alamat` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

    INSERT INTO `data`(`id`,`nama`,`alamat`) VALUES
    (1,'Ali','Jakarta'),
    (2,'Budi','Semarang'),
    (3,'Amir','Bandung'),
    (4,'Santi','Surabaya'),
    (5,'Yuni','Medan'),
    (6,'Ahmad','Palembang'),
    (7,'Wati','Denpasar'),
    (8,'Dani','Balikpapan');


    excel.php
    <?php
    mysql_connect('localhost','root','');
    mysql_select_db('test');

    $rpt='<html><head><title>Sample</title></head><body><table>';

    $q=mysql_query('SELECT nama,alamat FROM data ORDER BY nama');
    while($r=mysql_fetch_array($q)) {
      $rpt=$rpt . '<tr><td>'.$r['nama'].'</td><td>'.$r['alamat'].'</td></tr>';
    }

    $rpt=$rpt . '</table></body></html>';
    ?>


    mail.php
    <?php
    require 'PHPMailerAutoload.php';

    include 'excel.php';

    $mail=new PHPMailer;
    $mail->isSMTP();
    $mail->Host='smtp.gmail.com';
    $mail->SMTPAuth=true;
    $mail->Username='account@gmail.com';
    $mail->Password='2-step-gmail-app-password';
    $mail->SMTPSecure='ssl';
    $mail->Port=465;

    $mail->setFrom('from@email.com', 'Sender');
    $mail->addAddress('to@email.com', 'Recipient');
    $mail->Subject='PHPMailer mail() test';

    $mail->msgHTML('This is a <b>HTML</b> message body');
    $mail->AltBody='This is a plain-text message body';
    $mail->addStringAttachment($rpt,'sample-'.date('Y-m-d').'.xls');

    if (!$mail->send()) {
      echo "Mailer Error: ".$mail->ErrorInfo;
    } else {
      echo "Message sent!";
    }
    ?>

    SELESAI

    email terkirim, langsung berikut attachment
    image

    isi file di attachment seperti yg diambil dari db
    image


    yg dikirim tabel html atau bukan ? HTML !
    baca dari database atau tidak ? BACA DATABASE !
    nama file yg di attach bisa dimanipulasi atau kagak ? BISA !


    apa perlu ribet ngurusi file temporary ? TIDAK !
    apa masih perlu ribet ngurusi ini script download atau simpan file ? TIDAK !
    apa masih perlu bingung ngurusi header ? TIDAK !



    sudah dipaparin petunjuk sebegitu banyak kok masih bingung to maaass ...

    koding di atas elo liat aja
    struktur nya sama atau kagak dgn potongan-potongan kode yg sudah ditunjukin ?

    file temporary ? emang masih perlu dibahas ?
    dari awal juga sudah dikasih tau, kagak perlu file temporary
    kagak perlu seribet itu ...

    gw anggap dah isi excel sudah berhasil elo buat
    bukan elo simpan jadi file
    cukup elo tampung di variable $isi_attachment

    cukup di script phpmailer nya ...
    bukan pake :
    $mail->addAttachment('hasil-export.xls');

    tapi pake :
    $mail->addStringAttachment($isi_attachment,'terserah-nama-filenya-apa.xls');

    kagak perlu save jadi file
    simpan ke folder tertentu
    lalu dibaca lagi
    baru di attach kan
    dan selama elo juga kagak bisa jawab yg logis "buat apa pake file temporary ?"
    dan kalo jawaban elo cuma "buat di-attach di email"
    ya, kagak bakal dibahas

    karena tanpa file temporary juga bisa bikin attachment
    dgn cara lebih efisien tanpa tambahan proses apa-apa lagi
  • wah mass. sudah bisaa.. :)>-
    makasih ya mas buat segala bantuannya. ^:)^

    kapan kapan saya bisa nanya nanya lagi yaa mas? ;)




  • mas, ini kan saya mau coba pake cronjob di linux, nah kalo pas manggil cronjob nya berarti tulis di terminalnya yah ?  bukan di php scriptnya ?
  • sudah mau migrasi ke server ?

    pake task scheduller windows sudah sukses ?
    sudah bisa jalan ?
  • edited May 2015
    mas, kalo mau dijalanin di cron linux bagaimana yah?

    saya sudah ikutin pedoman dari ini : http://www.cyberciti.biz/faq/howto-setup-php-script-as-cronjob/
    tapi tetep gak jalan.

    di file sendtoemail.php, sebelum <?php saya masukkan tulisan -> #!/usr/local/bin/php (directory filenya =  Home/Public/sendtoemail.php)

    lalu di terminal linux saya ketik crontab -e, lalu saya isi jadi seperti ini:
    46 22 * * * /usr/local/bin/php /Home/User/Public/sendtoemail.php          (saya lagi test supaya saat pukul 22.46 cronnya jalan), tapi hasilnya gak jalan cron nya padahal sudah saya save (ctrl+o) dan exit (ctrl+x).

    kira2 apa yang salah yah mas..?




  • edited May 2015
    dicoba dulu langsung di console nya linux mas ...

    perintah ini :
    /usr/local/bin/php /Home/User/Public/sendtoemail.php

    kalo di jalankan di console, bisa atau kagak ?



    dan elo kagak perlu menambah :
    #!/usr/local/bin/php

    kecuali script php nya elo jadikan executable
  • gak bisa mas. kenapa yah?

    setelah dijalankan perintah diatas, keluar ini : bash: /usr/local/bin/php: Is a directory
  • ./usr/local/bin/php ./Home/User/Public/sendtoemail.php
  • itu ketiknya langsung saat buka terminalnya mas?
    saya coba seperti itu keluar ini : ./usr/local/bin/php ./Home/User/Public/sendtoemail.php
  • edited May 2015
    ya langsung dicoba dijalankan di terminal / console nya to mas



    btw,
    php elo itu ada dimana ?
    bener ada di : /usr/local/bin/php ?

    gw tanya lokasi php nya sendiri lho ya ...
    bukan lokasi script php elo
  • kalo saya ketik : whereis php      di terminal sih muncul gini mas:
    /usr/local/bin/php /opt/lampp/bin/php

    tapi didalam folder /usr/local/bin/php -> kosong.

  • ya berarti php elo ada disini :
    /opt/lampp/bin/php

    coba langsung di console :
    /opt/lampp/bin/php /Home/User/Public/sendtoemail.php

    bisa atau kagak ?
  • oh iya mas udah jalan. Terus untuk di cron nya jadi seperti ini yah?

    * * * * * /opt/lampp/bin/php /Home/User/Public/sendtoemail.php
  • edited May 2015
    ya iya lah ... gitu pake nanya :))

    seting waktu nya yg bener
  • oke oke mas.. #:-S

    many thanks   
    :)
  • mas, ini misalnya kalo dijalanin seperti ini:
    /opt/lampp/bin/php /Home/User/Public/contoh.php

    entar diterminal cuma keluar isi dari file php nya yah? bukan berjalan di browser yah?

    ------------------------------------------------------------------------------------------------------------------------------------
    script saya yg kemarin kok di windows sepertinya jalan lancar deh, tapi script saya kalo dijalanin seperti ini:
    /opt/lampp/bin/php /Home/User/Public/sendtoemail.php

    ada errornya di class.smtp.php.
    berarti scriptnya harus disesuaikan dengan di linux dong?
Sign In or Register to comment.