![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/soundstudiopro.com/private_html/ |
<?php
/**
* Web-based Cron Runner
* Runs all scheduled tasks when system cron is not available
*
* Setup in cPanel Cron Jobs:
* Command: /usr/bin/php /home/gositeme/domains/soundstudiopro.com/public_html/web_cron.php
* Or via HTTP: https://soundstudiopro.com/web_cron.php?key=YOUR_SECRET_KEY
*
* Recommended: Run every 15 minutes
*/
// Security: Check for a secret key to prevent unauthorized access
$secret_key = 'soundstudiopro_credit_expiration_2025';
$provided_key = $_GET['key'] ?? '';
$is_cli = php_sapi_name() === 'cli';
if (!$is_cli && $provided_key !== $secret_key) {
http_response_code(403);
echo json_encode(['error' => 'Unauthorized access']);
exit;
}
if (!$is_cli) {
header('Content-Type: application/json');
}
$results = [
'timestamp' => date('Y-m-d H:i:s'),
'tasks' => []
];
// Task 1: Credit Expiration
ob_start();
require_once 'cron/expire_credits.php';
$results['tasks']['credit_expiration'] = ['status' => 'completed', 'output' => ob_get_clean()];
// Task 2: Auto-Fix Titles and Stuck Tracks
ob_start();
require_once 'cron/auto_fix_titles.php';
$results['tasks']['auto_fix_titles'] = ['status' => 'completed', 'output' => ob_get_clean()];
$results['success'] = true;
$results['message'] = 'All cron tasks completed';
if (!$is_cli) {
echo json_encode($results, JSON_PRETTY_PRINT);
} else {
echo "Web Cron Complete at {$results['timestamp']}\n";
foreach ($results['tasks'] as $task => $info) {
echo "- $task: {$info['status']}\n";
}
}
?>