Advertisement
justhrun

NotifikasiRevisi

Feb 20th, 2022
1,117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.72 KB | None | 0 0
  1. <?php
  2. $db_host = 'localhost';
  3. $db_user = 'user-database';
  4. $db_pass = 'BukanPasswordSebenarnya';
  5. $db_name = 'data';
  6.  
  7. $conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
  8. if(!$conn) {
  9.   die('Gagal terhubung MySQL: ' . mysqli_connect_error());
  10. }
  11.  
  12. $sql = "SELECT name, lokasi, startdate, expireddate FROM pendataan WHERE expireddate <= DATE_ADD(CURDATE(), INTERVAL 30 DAY) ORDER BY id ASC";
  13. $query = mysqli_query($conn, $sql);
  14. if(!$query) {
  15.   die('SQL Error: ' . mysqli_error($conn));
  16. }
  17.  
  18. /* tidak perlu dalam loop krn hasilnya pasti sama
  19. $now = new DateTime();
  20. $now = $now->format('Y-m-d');
  21. $now = strtotime($now);
  22.  
  23. 3baris tsb dan baris $today = date('Y-m-d',$now);
  24. cukup dgn 1baris ini
  25. */
  26. $today = date("Y-m-d");
  27.  
  28. /* juga statement (60 * 60 * 24) gak usah berulang krn udah pasti */
  29. $seconds_in_day = (60 * 60 * 24);
  30.  
  31. // krn FROM email pasti sama, gk usah masuk loop
  32. $headers = "From: emailsaya@domain.com" . "\r\n" .
  33.  
  34. while ($row = mysqli_fetch_assoc($query)){
  35.  
  36.   $exp_date = strtotime($row['expireddate']);
  37.   $notify_pertama = strtotime ('-30 days',$exp_date);
  38.   $notify_kedua = strtotime ('-15 days',$exp_date);
  39.   $notify_ketiga = strtotime ('-7 days',$exp_date);
  40.   /* dipindah ke sebelum loop
  41.   $now = new DateTime();
  42.   $now = $now->format('Y-m-d');
  43.   $now = strtotime($now);
  44.   */
  45.  
  46.   $pertama = date('Y-m-d',$notify_pertama);
  47.   $kedua = date('Y-m-d',$notify_kedua);
  48.   $ketiga = date('Y-m-d',$notify_ketiga);
  49.   $ipaddr = $row['ip'];
  50.   $hostname = $row['hostname'];
  51.   $pic = $row['pic'];
  52.   $expired = $row['expireddate'];
  53.   //$today = date('Y-m-d',$now);
  54.  
  55. /*juga statement   $fromDate* = $expired;
  56.   krn isinya sama, gk perlu berulang, cukup 1x aja */
  57.   $fromDate = $expired;
  58.  
  59.  
  60.   $daysLeft1 = 0;
  61.   //$fromDate1 = $expired;
  62.   $curDate1 = $pertama;
  63.   $daysLeft1 = abs(strtotime($curDate1) - strtotime($fromDate));
  64.   $days1 = $daysLeft1/$seconds_in_day;
  65.  
  66.   $daysLeft2 = 0;
  67.   //$fromDate2 = $expired;
  68.   $curDate2 = $kedua;
  69.   $daysLeft2 = abs(strtotime($curDate2) - strtotime($fromDate));
  70.   $days2 = $daysLeft2/$seconds_in_day;
  71.  
  72.   $daysLeft = 0;
  73.   //$fromDate = $expired;
  74.   $curDate = $ketiga;
  75.   $daysLeft = abs(strtotime($curDate) - strtotime($fromDate));
  76.   $days3 = $daysLeft/$seconds_in_day;
  77.  
  78.   if ( $exp_date > $notify_pertama  &&  $exp_date > $notify_ketiga ) {
  79.     if ($pertama == $today) {
  80.         $to      = "emailsaya@domain.com";
  81.         $subject = "Pemberitahuan Pertama, Unit Dengan nama:$name Akan Segera Expired Pada Tgl $expired";
  82.         $message = "Mohon Perhatiannya, Unit Dengan Nama:$name Akan Segera Expired $days1 hari lagi pada Tgl $expired Mohon segera followup perbaikan";
  83.         //$headers = "From: emailsaya@domain.com" . "\r\n" .
  84.         mail($to, $subject, $message, $headers);
  85.     }
  86.     if ($kedua == $today) {
  87.         $to      = "emailsaya@domain.com";
  88.         $subject = "Pemberitahuan Kedua, Unit Dengan nama:$name Akan Segera Expired Pada Tgl $expired";
  89.         $message = "Mohon Perhatiannya, Unit Dengan Nama:$name Akan Segera Expired $days2 hari lagi pada Tgl $expired Mohon segera followup perbaikan";
  90.         //$headers = "From: emailsaya@domain.com"       . "\r\n" .
  91.         mail($to, $subject, $message, $headers);
  92.     }
  93.     if ($ketiga == $today) {
  94.         $to      = "emailsaya@domain.com";
  95.         $subject = "Pemberitahuan Ketiga, Unit Dengan nama:$name Akan Segera Expired Pada Tgl $expired";
  96.         $message = "Mohon Perhatiannya, Unit Dengan Nama:$name Akan Segera Expired $days3 hari lagi pada Tgl $expired Mohon segera followup perbaikan";
  97.         //$headers = "From: emailsaya@domain.com"       . "\r\n" .
  98.         mail($to, $subject, $message, $headers);
  99.     }
  100.   } else {
  101.     echo 'false';
  102.   }
  103. }
  104. mysqli_free_result($query);
  105. mysqli_close($conn);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement