PHP Classes

File: tests/debug_simple_replyto.php

Recommend this page to a friend!
  Packages of Matthew Asham   Binkterm PHP   tests/debug_simple_replyto.php   Download  
File: tests/debug_simple_replyto.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Binkterm PHP
Bulletin board system based on the Web
Author: By
Last change:
Date: 5 days ago
Size: 3,842 bytes
 

Contents

Class file image Download
<?php

/**
 * Simple debug script to check if message 288 has REPLYTO data
 */

// Include the Database class and other dependencies
require_once __DIR__ . '/vendor/autoload.php';

// Include the necessary source files
$srcFiles = glob(__DIR__ . '/src/*.php');
foreach (
$srcFiles as $file) {
    require_once
$file;
}

// Include the parseReplyToKludge function from index.php
function parseReplyToKludge($messageText) {
    if (empty(
$messageText)) {
        return
null;
    }
   
   
// Normalize line endings and split into lines
   
$lines = preg_split('/\r\n|\r|\n/', $messageText);
   
    foreach (
$lines as $line) {
       
$trimmed = trim($line);
       
       
// Look for REPLYTO kludge line
       
if (preg_match('/^REPLYTO:\s*(.+)/', $trimmed, $matches)) {
           
$replyToValue = trim($matches[1]);
           
           
// Parse format: "name@address" or just "address"
           
if (preg_match('/^(.+?)@(\d+:\d+\/\d+(?:\.\d+)?)$/', $replyToValue, $addressMatches)) {
                return [
                   
'name' => trim($addressMatches[1]),
                   
'address' => trim($addressMatches[2])
                ];
            }
           
// If no @ symbol, treat entire value as address
           
elseif (preg_match('/^\d+:\d+\/\d+(?:\.\d+)?$/', $replyToValue)) {
                return [
                   
'name' => '', // No name provided
                   
'address' => $replyToValue
               
];
            }
        }
    }
   
    return
null;
}

try {
   
$db = \BinktermPHP\Database::getInstance()->getPdo();
    echo
"Connected to database successfully.\n\n";
   
   
// Get message 288
   
$stmt = $db->prepare("SELECT id, message_text, kludge_lines, from_name, from_address FROM echomail WHERE id = ?");
   
$stmt->execute([288]);
   
$message = $stmt->fetch();
   
    if (!
$message) {
        echo
"Message 288 not found.\n";
        exit;
    }
   
    echo
"Message 288 Details:\n";
    echo
"From: " . $message['from_name'] . "\n";
    echo
"Address: " . $message['from_address'] . "\n";
    echo
"Message text length: " . strlen($message['message_text']) . "\n";
    echo
"Kludge lines length: " . strlen($message['kludge_lines'] ?? '') . "\n\n";
   
   
// Check message text for REPLYTO
   
echo "=== Checking message_text ===\n";
   
$replyToData = parseReplyToKludge($message['message_text']);
    if (
$replyToData) {
        echo
"? Found REPLYTO:\n";
        echo
" Name: " . $replyToData['name'] . "\n";
        echo
" Address: " . $replyToData['address'] . "\n";
    } else {
        echo
"? No REPLYTO found in message_text\n";
       
       
// Show lines containing "reply" (case insensitive) for debugging
       
$lines = preg_split('/\r\n|\r|\n/', $message['message_text']);
       
$foundReplyLines = [];
        foreach (
$lines as $i => $line) {
            if (
stripos($line, 'reply') !== false) {
               
$foundReplyLines[] = "Line " . ($i + 1) . ": " . trim($line);
            }
        }
       
        if (!empty(
$foundReplyLines)) {
            echo
"Found lines containing 'reply':\n";
            foreach (
$foundReplyLines as $line) {
                echo
" " . $line . "\n";
            }
        }
    }
   
   
// Check kludge lines if they exist
   
if (!empty($message['kludge_lines'])) {
        echo
"\n=== Checking kludge_lines ===\n";
       
$replyToDataKludge = parseReplyToKludge($message['kludge_lines']);
        if (
$replyToDataKludge) {
            echo
"? Found REPLYTO in kludge_lines:\n";
            echo
" Name: " . $replyToDataKludge['name'] . "\n";
            echo
" Address: " . $replyToDataKludge['address'] . "\n";
        } else {
            echo
"? No REPLYTO found in kludge_lines\n";
        }
    }
   
} catch (
Exception $e) {
    echo
"Error: " . $e->getMessage() . "\n";
}

?>