File "server3.php"

Full Path: C:/wamp64/www/INTERPRETE2/backend/node_modules/util/node_modules/server3.php
File size: 3.11 KB
MIME-type: text/x-php
Charset: utf-8

<?php

$logFile = 'debug.txt'; // Asegúrate de que este archivo sea escribible

// Función para escribir en el archivo de log
function writeToLog($message)
{
    global $logFile;
    $date = date('Y-m-d H:i:s'); // Fecha y hora
    file_put_contents($logFile, "[$date] $message\n", FILE_APPEND);
}

// Configuración de la conexión a la base de datos
$host = 'localhost';
$usuario = 'SANMARINO';
$contraseña = 'sanmarino2021*';
$nombre_db = 'interprete';

//Bloque de codigo para obtener datos de la tabla de registros y mostrarlos en un select---------------------------------------
try {
    $conn = new PDO("mysql:host=$host;dbname=$nombre_db", $usuario, $contraseña);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // CABECERAS CORS Y JSON:
    header('Access-Control-Allow-Origin: *');
    header('Content-Type: application/json');

    writeToLog("Conexión a la base de datos exitosa");

    if ($_SERVER['REQUEST_METHOD'] === 'GET') {
        writeToLog("Recibido una solicitud GET");

        $query = "SELECT RAZON_SOCIAL, EMAIL FROM registros";
        $stmt = $conn->prepare($query);
        $stmt->execute();
        $clientes = $stmt->fetchAll(PDO::FETCH_ASSOC);

        if ($clientes) {
            writeToLog("Datos de clientes encontrados: " . count($clientes));

            // Convertir todos los campos a UTF-8
            $clientes_utf8 = array_map(function ($cliente) {
                return array_map(function ($valor) {
                    return mb_convert_encoding($valor, 'UTF-8', 'auto');
                }, $cliente);
            }, $clientes);

            $json = json_encode($clientes_utf8, JSON_UNESCAPED_UNICODE);

            if ($json === false) {
                $jsonError = json_last_error_msg();
                writeToLog("⚠️ Error al convertir a JSON: $jsonError");
                echo json_encode([
                    'status' => 'error',
                    'message' => 'Error al convertir datos a JSON: ' . $jsonError
                ]);
            } else {
                writeToLog("✅ JSON generado correctamente. Longitud: " . strlen($json));
                echo $json;
            }
        } else {
            writeToLog("No se encontraron clientes");
            echo json_encode([]);

            $resultado = json_encode($clientes, JSON_UNESCAPED_UNICODE);
            if ($resultado === false) {
                writeToLog("Error al codificar JSON: " . json_last_error_msg());
                echo json_encode(['status' => 'error', 'message' => 'Error al codificar JSON']);
            } else {
                echo $resultado;
            }
        }
        exit;
    }

    writeToLog("Método no permitido");
    echo json_encode([
        'status' => 'error',
        'message' => 'Método de solicitud no permitido.'
    ]);
    exit;
} catch (PDOException $e) {
    writeToLog("Error en la conexión o consulta: " . $e->getMessage());
    echo json_encode([
        'status' => 'error',
        'message' => 'Error en la conexión o la consulta: ' . $e->getMessage()
    ]);
    exit;
}