// précisons au navigateur que ce script retourne du JSON
    header('Content-Type: application/json; charset=utf-8');

    // chargeons le script de connexion mutualisé avec les autres traitements PHP
    // https://www.puce-et-media.com/parcours-dapprentissage-web-part-vi-php-structurer-et-traiter-cote-serveur/
    require_once '__connect__.php';

    // nous récupérons le paramètre transmis par l'URL
    $code = $_GET['code'] ?? '';

    // vérifions que le code postal respecte le format attendu : cinq chiffres
    // si cela ne correspond pas au format attentu, on retourne l'erreur au client
    if (!preg_match('/^[0-9]{5}$/', $code)) {
        echo json_encode([
            'success' => false,
            'message' => 'Code postal invalide.'
        ]);
        exit;
    }

    // on prépare la requête SQL
    $sql = "
        SELECT *
        FROM tab_cp
        WHERE ch_cp_code = :code
        ORDER BY ch_cp_label ASC
    ";

    // préparons puis exécutons la requête en transmettant le code postal recherché
    $stmt = $pdo->prepare($sql);
    $stmt->execute([
        ':code' => $code
    ]);

    // on récupère les résultats que l'on stocke dans $cp
    $cp = $stmt->fetchAll();

    // aucune commune ne correspond au code postal demandé
    if (!$cp) {
        echo json_encode([
            'success' => false,
            'message' => 'Code postal inconnu.'
        ]);
        exit;
    }

    // retournons les informations au client
    // nombre de communes trouvées, indicateur simple ou multiple,
    // ainsi que l'ensemble des données correspondantes
    echo json_encode([
        'success' => true,
        'count' => count($cp),
        'multiple' => count($cp) > 1,
        'datas' => $cp
    ]);