User Tools

Site Tools


nfldb_m2

get web first then cache

self.addEventListener('fetch', (event) => {
event.respondWith(
  fetch(event.request)
    .then((networkResponse) => {
      // Clone the response before caching (it can only be read once)
      return caches.open('dynamic-cache').then((cache) => {
        cache.put(event.request, networkResponse.clone());
        return networkResponse;
      });
    })
    .catch(() => {
      // Fallback to cache if the network request fails (offline)
      return caches.match(event.request);
    })
);
});

schedule sql

$sql = "SELECT tblGamesBrief.ID as briefID, tblGamesFull.ID as homeID, tblGamesFull.xTeam as homeTeam, tblGamesFull.xDate as xDate, tblGamesFull.xWeek as xWeek, tblGamesFull_1.ID as awayID, tblGamesFull_1.xTeam as awayTeam, (case when (Month(tblGamesFull.xDate)> 5) then Year(tblGamesFull.xDate) else Year(tblGamesFull.xDate) - 1 end) as xYear FROM (tblGamesBrief INNER JOIN tblGamesFull ON tblGamesBrief.xHomeTeam = tblGamesFull.ID) INNER JOIN tblGamesFull AS tblGamesFull_1 ON tblGamesBrief.xVisitingTeam = tblGamesFull_1.ID Where (case when (Month(tblGamesFull.xDate)> 5) then Year(tblGamesFull.xDate) else Year(tblGamesFull.xDate) - 1 end)=$getYear order by tblGamesFull.xDate";

encryption

network first for start_url
if (event.request.mode === 'navigate') {
  event.respondWith(
    // 1. Try the network first
    fetch(event.request)
      .then((response) => {
        // Clone the response so we can put one in cache and return the other
        const responseToCache = response.clone();
        
        caches.open(CACHE_NAME).then((cache) => {
          cache.put(event.request, responseToCache);
        });
        
        return response;
      })
      .catch(() => {
        // 2. Fallback to cache if network fails (offline)
        return caches.match(event.request);
      })
  );
}

javascriptasync function encryptData(plaintext, hexKey) {
  // 1. Convert hex key to byte array
  const keyBuffer = new Uint8Array(hexKey.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
  
  // 2. Import the raw key into Web Crypto API
  const cryptoKey = await crypto.subtle.importKey(
      "raw", keyBuffer, { name: "AES-CBC" }, false, ["encrypt"]
  );
  // 3. Generate a random 16-byte initialization vector (IV)
  const iv = crypto.getRandomValues(new Uint8Array(16));
  const encoder = new TextEncoder();
  const encodedPlaintext = encoder.encode(plaintext);
  // 4. Encrypt the data
  const ciphertextBuffer = await crypto.subtle.encrypt(
      { name: "AES-CBC", iv: iv }, cryptoKey, encodedPlaintext
  );
  // 5. Convert IV and Ciphertext to Base64
  const ivBase64 = btoa(String.fromCharCode(...iv));
  const ciphertextBase64 = btoa(String.fromCharCode(...new Uint8Array(ciphertextBuffer)));
  // 6. Combine them with a colon separator for transmission
  return `${ivBase64}:${ciphertextBase64}`;

}

// Execution Example:
encryptData("Hello from the browser!", "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914df1a")
  .then(encryptedString => console.log("Send this to PHP:", encryptedString));
Use code with caution.🐘 PHP Decryption (Server)The PHP script accepts the composite Base64 string, splits it   back into the individual IV and ciphertext segments, and decrypts it using the built-in OpenSSL library.php<?php
function decryptData($encryptedString, $hexKey) {
  // 1. Convert hex key back to binary
  $key = hex2bin($hexKey);
  // 2. Split the incoming payload into IV and Ciphertext components
  $parts = explode(':', $encryptedString);
  if (count($parts) !== 2) {
      return false; // Invalid payload structure
  }
  $iv = base64_decode($parts[0]);
  $ciphertext = base64_decode($parts[1]);
  // 3. Decrypt using native OpenSSL
  $decrypted = openssl_decrypt(
      $ciphertext,
      'aes-256-cbc',
      $key,
      OPENSSL_RAW_DATA,
      $iv
  );
  return $decrypted;
}
// Execution Example:
$hexKey = "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914df1a";
$receivedPayload = $_POST['encrypted_data'] ?? 'PASTE_JAVASCRIPT_OUTPUT_HERE';
$decryptedMessage = decryptData($receivedPayload, $hexKey);
if ($decryptedMessage !== false) {
  echo "Decryption Successful: " . $decryptedMessage;
} else {
  echo "Decryption Failed.";
}
nfldb_m2.txt · Last modified: 2026/06/02 14:18 by admin