System

Activity Log

Unified timeline of data changes (saves, imports, deletes) and backend errors. Filter by type, area, severity, or search.

Data changes (total)1,202
Errors (total)274,913
Today · changes0
Today · errors532
Reset

276,115 results · Page 5513 of 5523

customer_data.php
2026-04-26 19:41:41 · admin@ellasalterations.com · /api/visit_save.php
fatal
Cannot redeclare app_send_json() (previously declared in /mnt/drive3/customerdb/backend/bootstrap.php:54)
Script: /mnt/drive3/customerdb/frontend/api/visit_save.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/frontend/api/customer_data.php","line":3,"type":1}
customer_data.php
2026-04-26 19:41:11 · admin@ellasalterations.com · /api/visit_save.php
fatal
Cannot redeclare app_send_json() (previously declared in /mnt/drive3/customerdb/backend/bootstrap.php:54)
Script: /mnt/drive3/customerdb/frontend/api/visit_save.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/frontend/api/customer_data.php","line":3,"type":1}
customer_data.php
2026-04-26 19:40:41 · admin@ellasalterations.com · /api/visit_save.php
fatal
Cannot redeclare app_send_json() (previously declared in /mnt/drive3/customerdb/backend/bootstrap.php:54)
Script: /mnt/drive3/customerdb/frontend/api/visit_save.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/frontend/api/customer_data.php","line":3,"type":1}
customer_data.php
2026-04-26 19:40:11 · admin@ellasalterations.com · /api/visit_save.php
fatal
Cannot redeclare app_send_json() (previously declared in /mnt/drive3/customerdb/backend/bootstrap.php:54)
Script: /mnt/drive3/customerdb/frontend/api/visit_save.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/frontend/api/customer_data.php","line":3,"type":1}
customer_data.php
2026-04-26 19:39:41 · admin@ellasalterations.com · /api/visit_save.php
fatal
Cannot redeclare app_send_json() (previously declared in /mnt/drive3/customerdb/backend/bootstrap.php:54)
Script: /mnt/drive3/customerdb/frontend/api/visit_save.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/frontend/api/customer_data.php","line":3,"type":1}
customer_data.php
2026-04-26 19:39:11 · admin@ellasalterations.com · /api/visit_save.php
fatal
Cannot redeclare app_send_json() (previously declared in /mnt/drive3/customerdb/backend/bootstrap.php:54)
Script: /mnt/drive3/customerdb/frontend/api/visit_save.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/frontend/api/customer_data.php","line":3,"type":1}
sysadmin.php
2026-04-26 19:09:07 · anonymous · /backend/api/sysadmin.php?action=scripts_save
php_error
file_put_contents(/mnt/drive1/scripts/cleanup_customerdb_branches.sh): Failed to open stream: Permission denied
Script: /mnt/drive3/customerdb/webui/backend/api/sysadmin.php
IP: 192.168.7.42
Context
{"file":"/mnt/drive3/customerdb/backend/api/sysadmin.php","line":438,"severity_code":2}
live_table_manager · update
2026-04-26 12:39:28 · anonymous · /backend/live_table_manager.php?table=customer_payment_transactions&edit=4324&q=Pamela+Tripp
change
customer_payment_transactions #4324
Context
[]
Before
{"customer_payment_transaction_id":"4324","payment_id":null,"order_id":null,"visit_id":null,"customer_id":null,"customer_name":"Pamela Tripp","transaction_date":"2026-03-23 12:00:00","payment_method":"credit","payment_type":"Drop Off","bucket":"credit","amount":"40.00","tip_amount":"0.00","is_new_customer":"1","source":"legacy_customer_totals","created_at":"2026-04-12 11:52:48","updated_at":"2026-04-12 11:52:48"}
After
{"customer_payment_transaction_id":"4324","payment_id":null,"order_id":null,"visit_id":null,"customer_id":null,"customer_name":"Pamela Tripp","transaction_date":"2026-03-23 12:00:00","payment_method":"credit","payment_type":"Drop Off","bucket":"credit","amount":"0.00","tip_amount":"0.00","is_new_customer":"1","source":"legacy_customer_totals","created_at":"2026-04-12 11:52:00","updated_at":"2026-04-12 11:52:00"}
schedule · create
2026-04-25 21:06:27 · admin@ellasalterations.com · /api/appointment_workflow.php
change
appointment_workflow #visit:129432
Context
{"workflow_status":"no_show","visit_id":129432,"order_id":106568}
Before
[]
After
{"workflow_id":"11","source":"visit","source_key":"129432","appointment_date":"2026-04-25","customer_id":"495253","visit_id":"129432","order_id":null,"workflow_status":"no_show","payment_state":null,"payment_method":null,"payment_amount":"0.00","paid_in_advance":"0","report_required":"0","report_attached":"0","report_checked_at":"2026-04-25 21:06:27","provider_notes_text":null,"operator_notes":"{\"Project Details\":\"Formal wear dress hem and tighten bust \",\"When Needed?\":\"May 7th\"}","no_show_email_key":"none","created_at":"2026-04-25 21:06:27","updated_at":"2026-04-25 21:06:27"}
schedule · create
2026-04-25 20:33:39 · admin@ellasalterations.com · /api/appointment_workflow.php
change
appointment_workflow #visit:129431
Context
{"workflow_status":"no_show","visit_id":129431,"order_id":106567}
Before
[]
After
{"workflow_id":"10","source":"visit","source_key":"129431","appointment_date":"2026-04-25","customer_id":"495252","visit_id":"129431","order_id":null,"workflow_status":"no_show","payment_state":null,"payment_method":null,"payment_amount":"0.00","paid_in_advance":"0","report_required":"0","report_attached":"0","report_checked_at":"2026-04-25 20:33:39","provider_notes_text":null,"operator_notes":"{\"Project Details\":\"Replace or fix zipper on dress\",\"When Needed?\":\"1 week?\"}","no_show_email_key":"none","created_at":"2026-04-25 20:33:39","updated_at":"2026-04-25 20:33:39"}
documents · upload
2026-04-25 18:29:57 · anonymous · /backend/documents.php?backend_document_id=24
change
backend_document #25
Context
{"file_name":"2026-04-25-codex-changes.md","mime_type":"application/octet-stream"}
Before
[]
After
{"backend_document_id":"25","document_type":"upload","title":"Codex - Documentation 04-25-2026","slug":"codex-documentation-04-25-2026","summary_text":"2026-04-25-codex-changes.md\r\nIt includes:\r\n\r\neverything created/updated/removed\r\ndatabase schema objects added\r\nDB data changes performed\r\nAPI endpoints/actions touched\r\nprocedures/functions and scripts added/changed\r\ncron/notification behavior\r\nvalidation performed today","content_markdown":null,"content_html":null,"file_name":"2026-04-25-codex-changes.md","stored_name":"20260425-182957-0b251cd7.md","mime_type":"application/octet-stream","file_size_bytes":"6092","storage_path":"/mnt/drive3/customerdb/backend/documents_storage/20260425-182957-0b251cd7.md","is_deleted":"0","created_at":"2026-04-25 18:29:57","updated_at":"2026-04-25 18:29:57","editor_content":"# CustomerDB Changes Log\nDate: 2026-04-25\nAuthor: Codex\n\n## Scope\nThis document summarizes all work completed today in this session, including created/updated/removed files, database schema objects introduced by code, API behaviors touched, and operational procedures/scripts added.\n\n## 1) Files Created\n- `backend/search_data_service.php`\n- `backend/search_data.php`\n- `webui/backend/search_data.php` (compatibility loader)\n- `webui/backend/search_data_service.php` (compatibility loader)\n- `/mnt/drive1/scripts/cleanup_customerdb_branches.sh` (runtime ops script; outside repo tree)\n\n## 2) Files Updated\n- `backend/module_service.php`\n- `backend/index.php`\n- `backend/page_helpers.php`\n- `webui/settings.html`\n- `backend/api/sysadmin.php`\n- `backend/sysadmin.php`\n- `backend/jobs/cron_runtime_service.php`\n- `backend/cron_manager.php`\n- `backend/search_data.php` (restyling updates for spreadsheet-like sections)\n- `backend/search_data_service.php` (provider detection/compat fixes)\n\n## 3) Files Removed\n- None.\n\n## 4) Database Schema Objects Added (by code)\nImplemented in `backend/search_data_service.php` via `app_install_search_data_schema(...)`:\n\n### Tables\n1. `backend_search_dataset`\n2. `backend_search_import_batch`\n3. `backend_search_dataset_field`\n4. `backend_search_data_row`\n\n### Indexes / Constraints (high level)\n- Unique dataset key by provider (`provider_name`, `dataset_key`)\n- Import batch indexes by dataset/status\n- Unique field key per dataset\n- Unique row identity hash per dataset\n- Analytical indexes on date/clicks/impressions\n\n## 5) Database Data Changes Performed Today\n- A cron job row was inserted in `cron_job`:\n  - Label: `Cleanup Repo Branch Folders`\n  - Schedule: `20 3 * * *`\n  - Command: `bash /mnt/drive1/scripts/cleanup_customerdb_branches.sh`\n  - Enabled: `1`\n- Search data smoke import was executed once in this environment for validation, which inserted dataset/import/data rows in the new search tables.\n\n## 6) New/Updated Backend Module\n### Module: Search Data Imports (`Bing / Google CSV + AI`)\n- New page: `backend/search_data.php`\n- New service: `backend/search_data_service.php`\n- Registered in backend module overview and dashboard card.\n- Added to module jump links and settings module visibility list.\n\n### Functional capabilities added\n- Adaptive CSV import for Google/Bing (and unknown/future providers).\n- Header evolution tracking (new columns are cataloged without code changes).\n- Batch import auditing (rows seen/inserted/updated/skipped).\n- Query context construction from imported tables.\n- Ollama-based AI question answering over imported data using existing settings:\n  - `ollama_url`\n  - `ollama_default_model`\n\n## 7) API Surface and Call Behavior Changes\n## Updated endpoint\n- `backend/api/sysadmin.php`\n\n### Updated actions\n1. `action=backups_list`\n   - Added new `dir` key support:\n     - `repo-branches` => `/mnt/drive3/customerdb_repo/branches`\n2. `action=backups_delete`\n   - Previously file-only delete.\n   - Now supports both file and folder delete.\n   - Added safe recursive folder deletion with path-boundary checks.\n   - Response now includes:\n     - `deleted_type` (`file` or `folder`)\n\n### Existing actions used by UI (not newly created today, but part of touched API flow)\n- `logs_list`, `logs_read`, `logs_clear`\n- `scripts_list`, `scripts_read`, `scripts_save`, `scripts_run`, `scripts_notify_save`\n- `backups_list`, `backups_delete`\n\n## 8) Sysadmin UI Changes\nUpdated `backend/sysadmin.php`:\n- Backups tab now includes:\n  - `customerdb_repo/branches/` source (`data-backupdir=\"repo-branches\"`)\n- Directory rows now include a `Delete Folder` button.\n- Delete handler updated to support file vs folder confirmation text.\n\n## 9) Cron / Ops Procedure Changes\n## Updated cron runtime service\nUpdated `backend/jobs/cron_runtime_service.php`:\n- Added constants:\n  - `APP_BRANCH_CLEANUP_SCRIPT_PATH`\n  - `APP_BRANCH_CLEANUP_TARGET_PATH`\n- Added helper:\n  - `app_cron_ensure_branch_cleanup_script()`\n- `app_cron_migrate_command_paths(...)` now:\n  - Ensures command normalization for `Cleanup Repo Branch Folders`\n  - Ensures cleanup script exists on disk\n\n## Updated cron manager seeding\nUpdated `backend/cron_manager.php`:\n- Added seeded/ensured job:\n  - `Cleanup Repo Branch Folders`\n  - `20 3 * * *`\n  - `bash /mnt/drive1/scripts/cleanup_customerdb_branches.sh`\n\n## Script created\n`/mnt/drive1/scripts/cleanup_customerdb_branches.sh`\n- Deletes first-level folders older than 5 days under:\n  - `/mnt/drive3/customerdb_repo/branches`\n- Emits clear stdout status suitable for cron logs/notifications.\n\n## Notifications\nNo new notification channels were added.\nThe new cron job uses existing cron execution + notification flow:\n- Telegram (depending on settings)\n- Email (depending on settings)\n\n## 10) Jump-To-Module Improvements\nUpdated `backend/page_helpers.php`:\n- Jump dropdown list now sorted A-Z by label.\n- List expanded to include missing backend destinations.\n- Corrected invalid links for queue pages to existing routes:\n  - `/upcoming.html`\n  - `/workload.html`\n\n## 11) Styling/UI Updates Requested\nUpdated `backend/search_data.php`:\n- For sections:\n  - `CSV Files`\n  - `Dataset Totals`\n  - `Recent Imports`\n- Removed rounded corners and applied spreadsheet-like flat table style (Excel-like grid presentation).\n\n## 12) Compatibility / Robustness Fixes Applied\nIn `backend/search_data_service.php`:\n- Added CSV parsing compatibility for `fgetcsv` escape parameter.\n- Replaced `mb_substr` with `substr` in one path to avoid missing extension errors in this environment.\n- Improved provider detection rules for Google export naming patterns:\n  - `KeywordReport`\n  - `PageTrafficReport`\n  - `SearchPerformanceOverview`\n\n## 13) Validation Performed\n- PHP syntax checks (`php -l`) passed for all modified PHP files.\n- Search data smoke import executed successfully in this environment.\n- Verified script path existence after direct creation:\n  - `/mnt/drive1/scripts/cleanup_customerdb_branches.sh`\n\n## 14) Notes\n- Existing unrelated local repo changes were not reverted.\n- No destructive git operations were used.\n","is_text_editable":1,"can_edit_inline":1}
documents · upload
2026-04-25 18:24:48 · anonymous · /backend/documents.php
change
backend_document #24
Context
{"file_name":"CHANGE_LOG_2026-04-25.md","mime_type":"application/octet-stream"}
Before
[]
After
{"backend_document_id":"24","document_type":"upload","title":"Cursor documentation 04-25-2026","slug":"cursor-documentation-04-25-2026","summary_text":"t includes:\r\n\r\nSummary table — created/updated/removed, DDL vs DML, API impact.\r\nScoped file diff — full detail for uncommitted changes in:\r\nbackend/jobs/cron_runtime_service.php (backup bash migration, branch cleanup constants, app_cron_ensure_branch_cleanup_script(), related UPDATEs)\r\nbackend/cron_manager.php (Database Backup seed + Cleanup Repo Branch Folders seed/ensure)\r\nDatabase — cron_job / cron_job_run column list (from CREATE TABLE IF NOT EXISTS), all runtime UPDATE/INSERT behavior, optional manual SQL for backup.\r\nProcedures — new/changed PHP functions (no MySQL stored procedures).\r\nAPI — cron_manager POST actions and that no HTTP API files changed in this diff; run_cron_job.php is CLI.\r\nWider repo — pointer to git status for other changed/untracked files (not enumerated line-by-line).\r\nOps notes — bash vs execute bit, MAILTO / Hostinger from the earlier support thread.\r\nNote: There were no commits on 2026-04-25, so the document is based on the current working tree (including the branch-cleanup work in the same two files as the backup bash fix). If you want the doc to only cover the backup line and exclude branch cleanup, say so and it can be trimmed.","content_markdown":null,"content_html":null,"file_name":"CHANGE_LOG_2026-04-25.md","stored_name":"20260425-182448-2570d279.md","mime_type":"application/octet-stream","file_size_bytes":"7947","storage_path":"/mnt/drive3/customerdb/backend/documents_storage/20260425-182448-2570d279.md","is_deleted":"0","created_at":"2026-04-25 18:24:48","updated_at":"2026-04-25 18:24:48","editor_content":"# Change log — 2026-04-25\n\nThis document records **uncommitted work in the local workspace** as of generation time. There were **no git commits** on 2026-04-25; content is based on `git diff` and `git status` for this repository.\n\n---\n\n## 1. Summary\n\n| Category | What changed |\n|----------|---------------|\n| **Files created** | This document: `docs/CHANGE_LOG_2026-04-25.md` |\n| **Files removed** | None in the scoped diffs below |\n| **Database DDL** | **None** — no new `CREATE TABLE` / `ALTER` in these changes. Existing `cron_job` / `cron_job_run` definitions unchanged (see §4). |\n| **Database DML (runtime)** | `UPDATE` statements inside `app_cron_migrate_command_paths()` to normalize `cron_job.command` values (see §4). |\n| **HTTP API routes** | **None** added or changed by the `backend/jobs/cron_runtime_service.php` and `backend/cron_manager.php` diffs. |\n| **CLI / entry points** | `php backend/jobs/run_cron_job.php <cron_job_id>` (unchanged contract). |\n\n---\n\n## 2. Files updated (detailed) — cron / backup / branch cleanup\n\nThe following are the **only files** with local modifications captured in a full-file diff at documentation time: `backend/jobs/cron_runtime_service.php` and `backend/cron_manager.php`.\n\n### 2.1 `backend/jobs/cron_runtime_service.php`\n\n| Change | Description |\n|--------|-------------|\n| **New constants** | `APP_BRANCH_CLEANUP_SCRIPT_PATH` → `/mnt/drive1/scripts/cleanup_customerdb_branches.sh` |\n| | `APP_BRANCH_CLEANUP_TARGET_PATH` → `/mnt/drive3/customerdb_repo/branches` |\n| **`app_cron_migrate_command_paths()`** | After the existing `REPLACE` of `drive1` → `drive3` customerdb paths, **new `UPDATE`**: if `command` is exactly `/mnt/drive3/customerdb/backup.sh`, set it to `bash /mnt/drive3/customerdb/backup.sh` (avoids `Permission denied` when the script is not executable or the filesystem is `noexec`). |\n| | **New `UPDATE`**: rows with `label = 'Cleanup Repo Branch Folders'` get `command = 'bash /mnt/drive1/scripts/cleanup_customerdb_branches.sh'`. |\n| | Calls new helper **`app_cron_ensure_branch_cleanup_script()`** at end of migration. |\n| **New function** | **`app_cron_ensure_branch_cleanup_script()`** — if `/mnt/drive1/scripts` exists and is writable, writes an embedded **bash** script to `cleanup_customerdb_branches.sh` (deletes first-level subdirectories under the target older than 5 days), `chmod` `0755` if possible. If script content differs, file is updated. |\n\n**Notable behavior:** `app_cron_migrate_command_paths()` is invoked from `run_cron_job.php`, `cron_manager.php`, and any code path that loads this service before running jobs, so the `UPDATE` statements run idempotently when those paths execute.\n\n**Compatibility loader:** `webui/backend/jobs/cron_runtime_service.php` only `require`s the canonical `backend` file; no separate logic.\n\n### 2.2 `backend/cron_manager.php`\n\n| Change | Description |\n|--------|-------------|\n| **Seed job (empty `cron_job` table only)** | **Database Backup** command changed from `/mnt/drive3/customerdb/backup.sh` to **`bash /mnt/drive3/customerdb/backup.sh`**. |\n| | New seed job: **Cleanup Repo Branch Folders** — schedule `20 3 * * *`, command **`bash /mnt/drive1/scripts/cleanup_customerdb_branches.sh`**, `sort_order` 55. |\n| **`$ensureJobs` (insert if missing by label)** | Same **Cleanup Repo Branch Folders** block added so the job appears when the table already had data (seeds not run). |\n\n**Web entry:** `GET/POST` to `/backend/cron_manager.php` — manages rows in `cron_job`, can run jobs manually, regenerates export file for system crontab install (unchained URL; still the same page).\n\n---\n\n## 3. New or changed PHP “procedures” (functions)\n\nNo database **stored procedures** are introduced; the project uses **PHP functions** in `cron_runtime_service.php`.\n\n| Name | Action |\n|------|--------|\n| `app_cron_migrate_command_paths` | Extended with `backup.sh` `bash` migration, branch-folder command `UPDATE`, and `app_cron_ensure_branch_cleanup_script()` call. |\n| `app_cron_ensure_branch_cleanup_script` | **New** — materializes/updates the branch cleanup shell script and permissions when possible. |\n\nAll other existing functions in this file (`app_cron_execute_job`, `app_cron_send_notifications`, etc.) are **unchanged in signature**; execution still uses `exec($cmd . ' 2>&1', ...)` in `app_cron_execute_job`.\n\n---\n\n## 4. Database schema and data touchpoints\n\n### 4.1 Tables (no DDL change in this work)\n\nThese are **ensured** by `cron_manager.php` on load (`CREATE TABLE IF NOT EXISTS`):\n\n- **`cron_job`**: `cron_job_id`, `label`, `description`, `schedule`, `command`, `enabled`, `last_run_at`, `last_run_ok`, `last_run_out`, `sort_order`, `created_at`\n- **`cron_job_run`**: `cron_job_run_id`, `cron_job_id`, `job_label`, `run_source`, `started_at`, `finished_at`, `exit_code`, `ran_ok`, `output_text`\n\nNo new columns or indexes in the recorded diff.\n\n### 4.2 Data migrations (`UPDATE` only / idempotent)\n\nExecuted inside **`app_cron_migrate_command_paths($conn)`**:\n\n1. `UPDATE cron_job SET command = REPLACE(command, '/mnt/drive1/customerdb', '/mnt/drive3/customerdb')` where the substring appears.\n2. `UPDATE cron_job SET command = 'bash /mnt/drive3/customerdb/backup.sh' WHERE command = '/mnt/drive3/customerdb/backup.sh'`\n3. Daily Cleanup: existing logic rewriting old shell/PHP daily cleanup commands to `php8.3 .../daily_cleanup.php` (unchanged in intent).\n4. `UPDATE cron_job SET command = 'bash /mnt/drive1/scripts/cleanup_customerdb_branches.sh' WHERE label = 'Cleanup Repo Branch Folders'`\n5. Branch cleanup: `app_cron_ensure_branch_cleanup_script()` (filesystem, not SQL).\n\n**Manual SQL** (if migration has not run yet) for backup only:\n\n```sql\nUPDATE cron_job\nSET command = 'bash /mnt/drive3/customerdb/backup.sh'\nWHERE command = '/mnt/drive3/customerdb/backup.sh';\n```\n\n### 4.3 Inserts (new default job)\n\nIf **`cron_job` was empty** on first run after deploy, the seed includes the new **Cleanup Repo Branch Folders** row. If the table was **not** empty, **`$ensureJobs`** may insert that job when no row with the same label exists.\n\n---\n\n## 5. API surface\n\n| Type | Endpoints / scripts | Notes |\n|------|----------------------|--------|\n| **Changed in this diff** | None | |\n| **Related backend page** | `GET/POST /backend/cron_manager.php` | Form actions: `save_job`, `toggle`, `delete_job`, `run_now` (unchained pattern). |\n| **CLI** | `php8.3 /mnt/drive3/customerdb/backend/jobs/run_cron_job.php <id> [--verbose]` | Invoked by system cron per generated `/etc/cron.d/customerdb` lines. |\n\n**Other HTTP APIs** in the repository (e.g. under `webui/api/`, `frontend/api/`) are **not** modified by the two files above; the working tree still contains many other modified and untracked files—see §6.\n\n---\n\n## 6. Other modified / new paths in the working tree (not individually documented here)\n\nA snapshot of the repository showed **numerous** other modified and untracked files (e.g. `backend/api/*.php`, `frontend/api/*.php`, `webui/api/*.php`, `backup.sh`, logs, etc.). Those are **outside** the scoped `cron_runtime_service.php` / `cron_manager.php` diffs in §2. For a full list, run from the repo root:\n\n```text\ngit status\ngit diff --name-only\n```\n\n---\n\n## 7. Related operational notes (from 2026-04-25 support context)\n\n- **Shell `Permission denied` on `*.sh`:** prefer `bash /path/to/script.sh` (as implemented for `backup.sh`) and/or `chmod +x` on the script; check for **`noexec`** mounts.\n- **Email bounces to `*smtpout*.hostinger.io`:** that hostname is for **sending** mail, not a mailbox. Set **`MAILTO`** in crontab and app **notification** addresses to a real user address. Application logic in `app_cron_notification_email()` already discards some invalid Hostinger `smtpout` targets for cron emails.\n\n---\n\n## 8. Document history\n\n| Date | Note |\n|------|------|\n| 2026-04-25 | Initial version: cron file diffs, schema touchpoints, no API change in scope. |\n","is_text_editable":1,"can_edit_inline":1}
search_data_service.php
2026-04-25 16:20:55 · cli · Standard input code
error
Call to undefined function mb_substr()
IP: cli
Context
{"type":"Error","file":"C:\\code\\customerdb\\backend\\search_data_service.php","line":345,"trace":"#0 C:\\code\\customerdb\\backend\\search_data_service.php(453): app_search_data_touch_field(Object(mysqli), 1, 1, '\\xEF\\xBB\\xBF\"Page\"', 'page', 0, 'dimension', 'https://www.ell...')\n#1 Standard input code(12): app_search_data_import_csv(Object(mysqli), 'C:\\\\code\\\\custome...', Array)\n#2 {main}"}
search_data_service.php
2026-04-25 16:20:55 · cli · Standard input code
php_error
fgetcsv(): the $escape parameter must be provided as its default value will change
IP: cli
Context
{"file":"C:\\code\\customerdb\\backend\\search_data_service.php","line":422,"severity_code":8192}
search_data_service.php
2026-04-25 16:20:55 · cli · Standard input code
php_error
fgetcsv(): the $escape parameter must be provided as its default value will change
IP: cli
Context
{"file":"C:\\code\\customerdb\\backend\\search_data_service.php","line":388,"severity_code":8192}
stocks_save.php
2026-04-25 15:59:37 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:59:05 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:59:01 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:55 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:52 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:49 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:46 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:38 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:32 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:28 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:26 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:24 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:20 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:58:07 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:51 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:47 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:38 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:28 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:22 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:16 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:08 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:57:02 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
stocks_save.php
2026-04-25 15:56:58 · anonymous · /backend/api/stocks_save.php
error
Call to undefined function app_stocks_reorder_assets()
Script: /mnt/drive3/customerdb/webui/backend/api/stocks_save.php
IP: 192.168.7.27
Context
{"type":"Error","file":"/mnt/drive3/customerdb/backend/api/stocks_save.php","line":51,"trace":"#0 /mnt/drive3/customerdb/webui/backend/api/stocks_save.php(5): require()\n#1 {main}"}
webui · create
2026-04-24 19:38:35 · admin@ellasalterations.com · /api/customer_save.php
change
customer #495263
Context
{"source":"customer_save.php"}
After
{"customer_id":"495263","full_name":"Admin Kefa","phone":"8134451474","email":"admin@kefadixon.com","notes":"","is_new_customer":"1","pickup_due_at":null}
webui · create
2026-04-24 19:34:49 · admin@ellasalterations.com · /api/customer_save.php
change
customer #495262
Context
{"source":"customer_save.php"}
After
{"customer_id":"495262","full_name":"Kefa Test","phone":"8134451474","email":"admin@kefadixon.com","notes":"","is_new_customer":"1","pickup_due_at":null}
webui · create
2026-04-24 19:34:05 · admin@ellasalterations.com · /api/customer_save.php
change
customer #495261
Context
{"source":"customer_save.php"}
After
{"customer_id":"495261","full_name":"Test","phone":"000000000","email":"test","notes":"","is_new_customer":"1","pickup_due_at":null}
webui · create
2026-04-24 19:33:07 · admin@ellasalterations.com · /api/customer_save.php
change
customer #495260
Context
{"source":"customer_save.php"}
After
{"customer_id":"495260","full_name":"Peter Test","phone":"8134451474","email":"admin@kefadixon.com","notes":"","is_new_customer":"1","pickup_due_at":null}
webui · create
2026-04-24 19:25:17 · admin@ellasalterations.com · /api/customer_save.php
change
customer #495259
Context
{"source":"customer_save.php"}
After
{"customer_id":"495259","full_name":"Jan Murch","phone":"8138387552","email":"janmurch6@gmail.com","notes":"","is_new_customer":"1","pickup_due_at":null}
webui · create
2026-04-24 19:23:14 · admin@ellasalterations.com · /api/customer_save.php
change
customer #495258
Context
{"source":"customer_save.php"}
After
{"customer_id":"495258","full_name":"Jan Murch","phone":"8138387552","email":"janmurch6@gmail.com","notes":"","is_new_customer":"1","pickup_due_at":null}
slideshow.php
2026-04-24 17:30:39 · anonymous · /backend/slideshow.php
error
Image not found.
Script: /mnt/drive3/customerdb/webui/backend/slideshow.php
IP: 192.168.7.68
Context
{"action":"delete","type":"RuntimeException","file":"/mnt/drive3/customerdb/backend/slideshow.php","line":66,"trace":"#0 /mnt/drive3/customerdb/webui/backend/slideshow.php(5): require()\n#1 {main}"}
slideshow.php
2026-04-24 17:21:24 · anonymous · /backend/slideshow.php
error
Image not found.
Script: /mnt/drive3/customerdb/webui/backend/slideshow.php
IP: 192.168.7.68
Context
{"action":"delete","type":"RuntimeException","file":"/mnt/drive3/customerdb/backend/slideshow.php","line":58,"trace":"#0 /mnt/drive3/customerdb/webui/backend/slideshow.php(5): require()\n#1 {main}"}
slideshow.php
2026-04-24 16:43:33 · anonymous · /backend/slideshow.php
error
Could not save uploaded image 2023-07-06.jpg
Script: /mnt/drive3/customerdb/webui/backend/slideshow.php
IP: 192.168.7.68
Context
{"action":"upload","type":"RuntimeException","file":"/mnt/drive3/customerdb/backend/slideshow.php","line":47,"trace":"#0 /mnt/drive3/customerdb/webui/backend/slideshow.php(5): require()\n#1 {main}"}
slideshow.php
2026-04-24 16:43:33 · anonymous · /backend/slideshow.php
php_error
move_uploaded_file(): Unable to move &quot;/tmp/phpQzmhom&quot; to &quot;/mnt/drive3/customerdb/webui/slideshow/ImageFiles/2023-07-06_1.jpg&quot;
Script: /mnt/drive3/customerdb/webui/backend/slideshow.php
IP: 192.168.7.68
Context
{"file":"/mnt/drive3/customerdb/backend/slideshow.php","line":46,"severity_code":2}
slideshow.php
2026-04-24 16:43:33 · anonymous · /backend/slideshow.php
php_error
move_uploaded_file(/mnt/drive3/customerdb/webui/slideshow/ImageFiles/2023-07-06_1.jpg): Failed to open stream: Permission denied
Script: /mnt/drive3/customerdb/webui/backend/slideshow.php
IP: 192.168.7.68
Context
{"file":"/mnt/drive3/customerdb/backend/slideshow.php","line":46,"severity_code":2}
slideshow.php
2026-04-24 16:30:57 · anonymous · /backend/slideshow.php
error
Could not save uploaded image 2023-07-06.jpg
Script: /mnt/drive3/customerdb/webui/backend/slideshow.php
IP: 192.168.7.68
Context
{"action":"upload","type":"RuntimeException","file":"/mnt/drive3/customerdb/backend/slideshow.php","line":47,"trace":"#0 /mnt/drive3/customerdb/webui/backend/slideshow.php(5): require()\n#1 {main}"}
← Prev 1 5511 5512 5513 5514 5515 5523 Next →