Quellcode durchsuchen

Debug ajax_import

svalavuo vor 4 Tagen
Ursprung
Commit
e33ebef68e
1 geänderte Dateien mit 44 neuen und 50 gelöschten Zeilen
  1. 44 50
      admin/ajax_import_test.php

+ 44 - 50
admin/ajax_import_test.php

@@ -1,38 +1,37 @@
 <?php
-// AJAX-based WordPress import test to bypass form submission issues
-ob_start(); // Capture all output
-
+// Simple AJAX endpoint without output buffering
 error_reporting(E_ALL);
-ini_set('display_errors', 0); // Don't display errors, capture them instead
+ini_set('display_errors', 0);
 ini_set('max_execution_time', 60);
 ini_set('memory_limit', '512M');
 
+// Set header first
+header('Content-Type: application/json');
+
+// Simple response function
+function sendResponse($success, $message, $data = []) {
+    $response = array_merge([
+        'success' => $success,
+        'message' => $message
+    ], $data);
+    echo json_encode($response);
+    exit;
+}
+
 try {
     require_once '../includes/config.php';
     require_once '../includes/database.php';
     require_once '../includes/wordpress_import.php';
 } catch (Exception $e) {
-    ob_clean();
-    header('Content-Type: application/json');
-    echo json_encode([
-        'success' => false, 
-        'message' => 'Include error: ' . $e->getMessage(),
-        'step' => 'includes'
-    ]);
-    exit;
+    sendResponse(false, 'Include error: ' . $e->getMessage(), ['step' => 'includes']);
 }
 
-header('Content-Type: application/json');
-
-$response = ['success' => false, 'message' => '', 'step' => ''];
+$action = $_GET['action'] ?? '';
+$step = $action;
 
 try {
-    $action = $_GET['action'] ?? '';
-    $response['step'] = $action;
-    
     switch ($action) {
         case 'test_connection':
-            // Test connection only
             $wpConfig = [
                 'host' => trim($_GET['wp_host'] ?? ''),
                 'database' => trim($_GET['wp_database'] ?? ''),
@@ -40,21 +39,20 @@ try {
                 'password' => $_GET['wp_password'] ?? ''
             ];
             
-            $response['message'] = 'Testing connection...';
             $importer = new WordPressImport($wpConfig);
             $connectionTest = $importer->testConnection();
             
             if ($connectionTest['success']) {
-                $response['success'] = true;
-                $response['message'] = 'Connection successful';
-                $response['stats'] = $connectionTest['stats'];
+                sendResponse(true, 'Connection successful', [
+                    'step' => $step,
+                    'stats' => $connectionTest['stats']
+                ]);
             } else {
-                $response['message'] = $connectionTest['error'];
+                sendResponse(false, $connectionTest['error'], ['step' => $step]);
             }
             break;
             
         case 'import_categories':
-            // Import categories only
             $wpConfig = [
                 'host' => trim($_GET['wp_host'] ?? ''),
                 'database' => trim($_GET['wp_database'] ?? ''),
@@ -62,17 +60,16 @@ try {
                 'password' => $_GET['wp_password'] ?? ''
             ];
             
-            $response['message'] = 'Importing categories...';
             $importer = new WordPressImport($wpConfig);
             $result = $importer->importCategories();
             
-            $response['success'] = true;
-            $response['message'] = 'Categories imported';
-            $response['result'] = $result;
+            sendResponse(true, 'Categories imported', [
+                'step' => $step,
+                'result' => $result
+            ]);
             break;
             
         case 'import_users':
-            // Import users only
             $wpConfig = [
                 'host' => trim($_GET['wp_host'] ?? ''),
                 'database' => trim($_GET['wp_database'] ?? ''),
@@ -80,17 +77,16 @@ try {
                 'password' => $_GET['wp_password'] ?? ''
             ];
             
-            $response['message'] = 'Importing users...';
             $importer = new WordPressImport($wpConfig);
             $result = $importer->importUsers();
             
-            $response['success'] = true;
-            $response['message'] = 'Users imported';
-            $response['result'] = $result;
+            sendResponse(true, 'Users imported', [
+                'step' => $step,
+                'result' => $result
+            ]);
             break;
             
         case 'import_posts':
-            // Import posts only (small batch)
             $wpConfig = [
                 'host' => trim($_GET['wp_host'] ?? ''),
                 'database' => trim($_GET['wp_database'] ?? ''),
@@ -98,29 +94,27 @@ try {
                 'password' => $_GET['wp_password'] ?? ''
             ];
             
-            $response['message'] = 'Importing posts (batch)...';
             $importer = new WordPressImport($wpConfig);
             $result = $importer->importPosts();
             
-            $response['success'] = true;
-            $response['message'] = 'Posts imported';
-            $response['result'] = $result;
+            sendResponse(true, 'Posts imported', [
+                'step' => $step,
+                'result' => $result
+            ]);
             break;
             
         default:
-            $response['message'] = 'Unknown action';
+            sendResponse(false, 'Unknown action', ['step' => $step]);
     }
     
 } catch (Exception $e) {
-    $response['message'] = 'Error: ' . $e->getMessage();
-    $response['error'] = [
-        'file' => $e->getFile(),
-        'line' => $e->getLine(),
-        'trace' => $e->getTraceAsString()
-    ];
+    sendResponse(false, 'Error: ' . $e->getMessage(), [
+        'step' => $step,
+        'error' => [
+            'file' => $e->getFile(),
+            'line' => $e->getLine()
+        ]
+    ]);
 }
-
-// Clean any output and send JSON
-ob_clean();
-echo json_encode($response);
+?>
 ?>