Skip to main content
GrN.dk

Main navigation

  • Articles
  • Cases
  • Contact
  • Your Digital Project Manager
  • About Greg Nowak
  • Services
  • Portfolio
  • Container
    • Excel Freelancer
    • Kubuntu - tips and tricks
    • Linux Apache MySQL and PHP
    • News
    • Image Gallery
User account menu
  • Log in

Breadcrumb

  1. Home

php

The TableFlow booking page: the hour grid for Bord 4 on 19 August 2026, with three hours struck through as taken, 10:00-12:00 selected in green, and the price updated live to 40 kr.

Pay-to-book table reservations for a coworking space

Danish coworking space — client brief, built as a working demo
Coworking and shared offices

A Danish coworking space wanted members to book a table by the hour and pay for it — because at 20 kr. per hour per table, a booking that has not been paid for is not a booking. tableflow.grn.dk is that system, built from the client's brief and running live: an hour grid that shows what is actually free, a fifteen-minute payment hold that releases itself, and an admin screen for the people who run the place. Plain PHP and MariaDB — no framework, no dependencies, 853 lines in seven files.

By Greg Nowak, 8 July, 2026
Illustrated infographic summarizing: When AI writes JSON, one bad field can break the workflow

When AI writes JSON, one bad field can break the workflow

Structured AI output is useful in real workflows, but teams need schemas, validation, retries, and logs before JSON reaches production systems.

Tags

  • AI integrations
  • structured outputs
  • api automation
  • python
  • php
By Greg Nowak, 19 June, 2026
Illustrated infographic summarizing: PHP 8.2 Has Six Months Left, and CMS Hosts Need a Plan

PHP 8.2 Has Six Months Left, and CMS Hosts Need a Plan

PHP 8.1 is already unsupported, PHP 8.2 loses security support on December 31, 2026, and WordPress recommends PHP 8.3+. CMS hosts should be planning now.

Tags

  • php
  • wordpress
  • Drupal
  • Linux hosting
By Greg Nowak, 3 May, 2026

WordPress 6.8 Password Hashing: The Hidden Risk in Legacy Login Bridges

WordPress 6.8 changed password and token hashing. Learn where legacy login bridges fail, what to audit, and how to test authentication safely.

Tags

  • wordpress
  • authentication
  • php
  • Operations
By Greg Nowak, 1 October, 2021

Check if a Constant Is Defined in PHP: Practical Code Snippet

Use `defined()` first, `constant()` only when you need a dynamic lookup, and `get_defined_constants(true)` for audits. This updated PHP and WordPress guide explains the safe pattern for `DISALLOW_FILE_EDIT` and environment troubleshooting.

Tags

  • php
  • wordpress
  • Debugging
  • Server Ops
By Greg Nowak, 6 July, 2021

PHP Only on the Front Page: Safer Checks for Live Sites

Run PHP only on the homepage without brittle URL checks. Practical patterns for plain PHP, WordPress, Symfony, and Laravel, plus a live-site test plan.

Tags

  • php
  • Homepage Logic
  • wordpress
  • Symfony
  • Laravel
By Greg Nowak, 18 November, 2020

Drush Symfony PHP Errors in Drupal: A Safe, Practical Fix

A practical guide to diagnosing Drush and Symfony conflicts in Drupal, fixing them safely with Composer, and preventing repeat deployment failures.

Tags

  • Drupal
  • Drush
  • Composer
  • Symfony
  • php
By Greg Nowak, 17 November, 2020

Tidy Up composer.json with Composer Normalize

Clean up composer.json with Composer Normalize, Composer validation, and CI checks so PHP dependency changes stay readable, repeatable, and easier to review.

Tags

  • Web
  • programming
  • php
  • Composer
By Greg Nowak, 6 November, 2020

PHP Test If Front Page: Safer Homepage Detection in Plain PHP

Homepage logic in PHP looks simple until query strings, subfolder installs, and inherited routing decisions start breaking banners, forms, or tracking on the most important page. A safer check is to compare the parsed path from `$_SERVER['REQUEST_URI']`, normalize the app base path, and use platform helpers when a CMS或

Tags

  • php
  • routing
  • web development
  • technical delivery
By Greg Nowak, 13 August, 2020

CodeIgniter Login and Password Resets: Practical Security for Live Projects

Secure a live CodeIgniter login and password recovery flow with Shield, central route protection, careful validation, rate limits, and production checks.

Tags

  • codeigniter
  • php
  • application security
  • authentication
  • password recovery

Pagination

  • 1
  • Next page
php

Review Greg on Google

Greg Nowak Google Reviews

 

Illustrated infographic summarizing: One Timeout, Two Orders: Make AI Actions Safe to Retry
One Timeout, Two Orders: Make AI Actions Safe to Retry
2026-07-25

A timed-out AI action may already have succeeded. Stable keys, durable ledgers, queues and stored results prevent a routine retry from duplicating real work.

Illustrated infographic summarizing: Your AI Visibility Dashboard Needs a Methodology, Not More Charts
Your AI Visibility Dashboard Needs a Methodology, Not More Charts
2026-07-24

A practical framework for measuring AI-search visibility with fixed prompts, repeated tests, separate metrics, retained evidence, and honest reporting.

Illustrated infographic summarizing: AI Admin APIs Are Here—But Your Directory Is Still the Source of Truth
AI Admin APIs Are Here—But Your Directory Is Still the Source of Truth
2026-07-23

New AI admin APIs can automate access and spend controls, but reliable governance still starts with authoritative directory data and clear ownership.

Illustrated infographic summarizing: OpenAI Presence Arrived—But Is Your Workflow Ready for an Agent?
OpenAI Presence Arrived—But Is Your Workflow Ready for an Agent?
2026-07-22

Before an AI agent can take on real work, its workflow needs clear scope, permissions, handoffs, evaluation cases, and production monitoring.

Illustrated infographic summarizing: Chatbot Transcripts Quietly Became a Retention and Redaction Problem
Chatbot Transcripts Quietly Became a Retention and Redaction Problem
2026-07-21

Chatbot transcripts spread across providers, logs and support tools. Here is how to map each copy, redact sensitive data and test deletion properly.

Illustrated infographic summarizing: Cloudflare Service Keys Stop in September: Find Every Caller
Cloudflare Service Keys Stop in September: Find Every Caller
2026-07-20

Cloudflare Service Keys stop working on September 30, 2026. Here is how to find every caller, move to scoped API tokens and avoid a late outage.

Illustrated infographic summarizing: Your AI Workflow Needs an Acceptance Test Before It Meets Customers
Your AI Workflow Needs an Acceptance Test Before It Meets Customers
2026-07-19

A practical way to test AI workflows using realistic scenarios, tool checks, human rubrics, regression suites, and clear release gates.

Three cover candidates for The Goats Were Load-Bearing fanned on a dark background: an ember-lit door, three slow knocks, and a founders' ledger
The Goats Were Load-Bearing: a fantasy where the bill always comes due
2026-07-19

A teaser for the upcoming darkly comic fantasy novel The Goats Were Load-Bearing — a village, a door that must stay poor, and the worst possible time to sell the herd. Readers pick the cover.

Vegan Power game: the yellow player catches falling fruit while a chicken and a cow look on
Vegan Power: The Little Game About Eating Fruit, Not Friends
2026-07-19

Vegan Power is a free browser game where you catch fruit, dodge the animals, protect seven hearts, and chase a better high score.

KotobaMon title screen: the Japanese logo コトバモン over a low-poly 3D island with monsters, cherry-blossom trees and a trainer.
KotobaMon: Shipping a 3D Browser Game With No Build Step and Self-Hosted Voice
2026-07-19

A look at fantasy.grn.dk, a browser-based 3D game that teaches Japanese with no build step, procedural art and self-hosted AI voice, and what its constraints show about shipping interactive products fast and cheap.

More articles
RSS feed

GrN.dk web platforms, web optimization, data analysis, data handling and logistics.