<h4>SSL Admin Page Debug</h4><h5>Security Fixes</h5><ul><li><strong>Dynamic function call whitelist</strong> — <code>ssl.controller.php:45</code>: Unrestricted <code>$controller->$function()</code> now gated by <code>$allowedActions</code> whitelist. Previously any class method could be called via <code>action</code> param</li><li><strong>Throwable catch</strong> — All action dispatch wrapped in <code>try/catch(\Throwable)</code> so DB errors return JSON, not HTML</li></ul><h5>Critical Bug Fixes</h5><ul><li><strong>saveSslDetails fatal error</strong> — Line 115: Logic error <code>!isset($details[area]) &amp;&amp; $details[area] != administration</code> should be <code>||</code>. When <code>area=administration</code> was set, code still entered the cart-item block, then <code>$cartItemArray</code> was undefined at line 154 causing fatal error + <code>cart_item_id</code> incorrect integer value on update</li><li><strong>$cartItemArray[3] undefined</strong> — Replaced with <code>$cartItemId</code> variable set only when cart item is created (non-admin flow)</li><li><strong>cart_item_id only set when needed</strong> — Admin SSL saves no longer attempt to set <code>cart_item_id</code></li><li><strong>Null safety on service catalog</strong> — Added null checks on <code>$ssl_catalog</code> and <code>$serviceDetails</code> before accessing fields</li><li><strong>$cartItemArray[2] bounds check</strong> — Added <code>isset()</code> before accessing array index</li></ul><h5>PHP 8.1 Warning Fixes</h5><ul><li><code>ssl/index.php:13,44</code> — <code>$_SESSION[super_admin]</code> undefined key fixed</li><li><code>ssl.controller.php</code> — <code>$r[string]</code>, <code>$request[ssl_types]</code>, <code>$request[data]</code>, <code>$params[item_id]</code>, all <code>$details[]</code> keys null coalesced</li><li><code>ssl.php:2</code> — <code>$default_ssl_types</code> null fallback added</li></ul><h5>Other Fixes</h5><ul><li>Property typo: <code>$globalcass</code> → <code>$globalclass</code></li></ul><h5>Verification</h5><p>7 endpoints tested: getAllDomains, getAllSsl, searchDomain, getSslDetailsbyDomainId (existing + non-existent), saveSslDetails (admin area), invalid action — all return clean JSON with zero PHP errors.</p>