Webbserver - Love Blomberg

Show sourcecode

The following files exists in this folder. Click to view.

public_html/crumbs/admin/orders/

api.php
orders.php
sendmail.php
statusdisplay.php

sendmail.php

46 lines UTF-8 Windows (CRLF)
<?php

/**
 * Skickar ett mail till kunden när ordern är klar.
 */
function sendOrderReadyMail($dbconn$orderId)
{
  
// Hämta orderinfo + kundens email och namn
  
$stmt $dbconn->prepare(
    
"SELECT o.order_id, o.total_price, u.email, u.fullname, u.username
         FROM orders o
         JOIN users u ON o.user_id = u.user_id
         WHERE o.order_id = :order_id"
  
);
  
$stmt->execute([':order_id' => (int)$orderId]);
  
$order $stmt->fetch(PDO::FETCH_ASSOC);

  if (!
$order || empty($order['email'])) {
    return 
false;
  }

  
$to $order['email'];

  
// SÄKERHET: Validera e-postadressen för att förhindra header injection-attacker
  
if (!filter_var($toFILTER_VALIDATE_EMAIL)) {
    
error_log("sendmail: Ogiltig e-postadress för order $orderId$to");
    return 
false;
  }

  
$name $order['fullname'] ?: $order['username'];
  
// Gör till 4 siffrig, t.ex 0001, 0072, osv.
  
$orderCode str_pad($order['order_id'], 4'0'STR_PAD_LEFT);
  
$totalPrice $order['total_price'];

  
$subject "Din beställning #{$orderCode} är klar!";

  
$message "Hej {$name}!\n\n";
  
$message .= "Din beställning #{$orderCode} är nu klar för upphämtning.\n\n";
  
$message .= "Totalt: {$totalPrice} kr\n\n";
  
$message .= "Välkommen att hämta din order!\n";
  
$message .= "Visa din orderkod {$orderCode} vid upphämtning.\n\n";
  
$message .= "Tack för din beställning!";

  return 
mb_send_mail($to$subject$message);
}