Documentation edition: 9 September 2026

Troubleshooting

HTTP 500 or blank PHP page

Record the page path and time, then read the hosting PHP error log. A parse error means PHP could not understand the source; it is not fixed by clearing browser cache. Restore the pre-update file if necessary. Check upload completeness, exact filename, PHP version and included file paths. Provide the error and current source, excluding credentials.

Incorrect menu on kennel leaderboard

Use the menu-fix leaderboard version. It must include /2025header.php and /where/awhere_menustrip.php, not prefer a stale Where header. Confirm the menu file contains Kennel Leaderboards after Where Hared. If the main login/logout link is still wrong, inspect the current root header's session logic separately.

Leaderboard empty, unavailable or unexpected

Unavailable means a connection/query failed; review the PHP log. A true empty result means no qualifying groups. Confirm the travel config targets the database containing WhereUser and the expected numeric fields. Active accounts use WhereUser_Status = 'A'; the email-validity flag is not an activity flag. Hidden accounts do not contribute.

Compare known members and their recorded totals. Countries/states are summed, not deduplicated across members. Different kennel spellings remain separate. The query groups capitalization according to lowercasing and database collation; do not treat it as a canonical club-ID mapping.

Siteadmin password rejected

Confirm the generated file is named exactly siteadmin_password.php, is in /siteadmin/, and the installed bootstrap supports its override constant. Check for an accidental .txt suffix. Use the chosen password, not its hash. Test signed out or in a private window. A separate Directory Health page may still use a different password; do not assume it shares the override.

Verification takes too long

The supplied revision separates file checks from database checks. Confirm that version is installed. Do not keep opening more long-running requests. Check the last database-result time and host logs. A connection timeout does not guarantee every subsequent query finishes within the same interval. Escalate to the host if database/server load is the cause.

Songbook spins or loops

Test /songbook/showpage.php?pg=06 directly. Root /showpage.php is only a redirect shim. Installing the shim as /songbook/showpage.php creates a loop. Keep the real viewer, PDF and scan assets in /songbook/. If the direct viewer also hangs, inspect server errors and included header/footer files.

A page briefly looks old

Compare /where/ with /where/index.php. Check for an old index.html or index.htm, directory-index rules, browser/server caches, a redirect or styling loaded late. No old-page flash was conclusively reproduced in the earlier check. Do not delete a file solely because its name looks old; inspect its use first.

Accents, apostrophes or question marks look wrong

Inspect source bytes, HTTP Content-Type, meta declarations, connection charset and stored HEX values. A UTF-8 label does not convert Windows-1252 bytes. A literal question mark stored in place of lost data may require restoration from an original. Avoid resaving an editor form that already displays damaged data until the cause is known.

Map omits a selected country

First confirm the saved list contains it. Then inspect the current map's normalization/alias object and geographical dataset. Add 'burma': 'myanmar' only to the existing matching alias scheme; preserve all other entries. Handle legacy spellings such as Portgual deliberately. Never reorder positional country/state flag strings to fix a display label.

Plate photo opens a separate page

Confirm /plates/plates-lightbox.js exists and the current gallery includes its script tag. Refresh. Check the browser console, filename/card selector compatibility and native dialog support. Without JavaScript the original image-link behavior is intentional. If an image itself fails, check its actual filename and capitalization.

Profile field changes seem to disappear

Save and reload, then distinguish browser autofill, form binding and database persistence. Password fields should remain blank for unrelated changes. Report the current source and a non-sensitive example; do not submit repeated compensating edits without checking the stored value.

Continent Clubs remains Unavailable

Check which page and text you are seeing. The earlier wording “Each continent counts once. Australia and Oceania count as one continent” belongs to the old area-lookup implementation. Upload the latest real-column milestones file to /where/awhere_milestones.php, not siteadmin or the root. The prepared v2.1 version displays its version in the card. Hard-refresh and confirm the path.

If the new version is installed, open Country Continents and filter for missing assignments. Every selected country must have a valid real continent. Complete the pending entries, save each row and reload the user's page. Verify the new column exists in the actual travel database if the editor cannot load it.

A user with an unmatched country ID can also remain pending. Inspect the log and current country reference without changing stored bit positions. Missing log output alone does not prove the current code or database is correct.

Country editor: undefined db_host / empty user / password NO

This was a variable-name bug in the initial editor. The travel config defines pdb_server, pdb_user, pdb_password and pdb_database. Install the corrected country_continents.php. Do not reset database passwords or hard-code credentials into the editor. No SQL migration rerun is needed for this code correction.

Certificate fonts missing or old design displayed

Upload the entire certificate-fonts folder beside awhere_export.php, including DejaVuSans.ttf and DejaVuSans-Bold.ttf. Confirm exact case and readable files. The old export file will still produce the old design even if fonts are uploaded. Replace the PHP too, then reopen Export and use a fresh preview link.

If the logo is absent, check its two supported local paths and PHP GD. If PDF works but some characters do not, note the retained Windows-1252 limitation and use UTF-8 CSV for the complete text. An expired token means reopen Export while logged in; do not strip the token check.

Continents differ between map and certificate

First compare the actual selected countries. The map retains a legacy offset heuristic while milestones/export use ID-minus-one. Capture a concrete mismatch, check the saved flags and reference IDs, and preserve data before correcting that separate compatibility issue. Reassigning real continents to mask an indexing problem can change results for every other user.