false, 'error' => 'Configuration file not found' ]); exit; } $envVars = parse_ini_file($envFile); if (!$envVars) { echo json_encode([ 'success' => false, 'error' => 'Invalid configuration file' ]); exit; } // Database connection with detailed error handling $conn = new mysqli( $envVars['REACT_APP_DB_HOST'], $envVars['REACT_APP_DB_USER'], $envVars['REACT_APP_DB_PASS'], $envVars['REACT_APP_DB_NAME'] ); if ($conn->connect_error) { echo json_encode([ 'success' => false, 'error' => 'Database connection failed: ' . $conn->connect_error ]); exit; } // Get POST data $data = json_decode(file_get_contents('php://input'), true); // Generate ticket ID (9-digit format with leading zeros) $ticket_id = sprintf('%09d', mt_rand(1, 999999999)); // Prepare insert query $sql = "INSERT INTO tickets (ticket_id, title, description, status, priority, category, type) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $conn->prepare($sql); // First, store all values in variables $title = $data['title']; $description = $data['description']; $status = $data['status'] ?? 'Open'; $priority = $data['priority'] ?? '4'; $category = $data['category'] ?? 'General'; $type = $data['type'] ?? 'Issue'; // Then use the variables in bind_param $stmt->bind_param( "sssssss", $ticket_id, $title, $description, $status, $priority, $category, $type ); if ($stmt->execute()) { echo json_encode([ 'success' => true, 'ticket_id' => $ticket_id, 'message' => 'Ticket created successfully' ]); } else { echo json_encode([ 'success' => false, 'error' => $conn->error ]); } $stmt->close(); $conn->close();