HEX
Server: Apache
System: Linux webm004.cluster129.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: windevelwb (110072)
PHP: 8.5.0
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/windevelwb/www/api2/add_portal.php
<?php
header("Content-Type: application/json; charset=utf-8");

// Récupération du portal envoyé en POST
$portal = $_POST["portal"] ?? "";

if ($portal === "") {
    echo json_encode(["error" => "portal manquant"]);
    exit;
}

// Nettoyage de l'URL (on enlève le / final)
$portal = rtrim($portal, "/");

// 🔹 CHEMIN UNIQUE ET CORRECT
// DOCUMENT_ROOT = /home/.../www
// => /home/.../www/api2/data/portals.json
$path = $_SERVER["DOCUMENT_ROOT"] . "/api2/data/portals.json";

// Lecture du JSON
$data = json_decode(file_get_contents($path), true);

if (!is_array($data)) {
    echo json_encode(["error" => "portals.json illisible"]);
    exit;
}

// Ajout Xtream
if (!in_array($portal, $data["xtream"])) {
    $data["xtream"][] = $portal;
}

// Ajout Stalker (/c)
$portal_stalker = $portal . "/c";

if (!in_array($portal_stalker, $data["stalker"])) {
    $data["stalker"][] = $portal_stalker;
}

// Sauvegarde
file_put_contents($path, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));

// Réponse JSON
echo json_encode([
    "xtream_added"  => $portal,
    "stalker_added" => $portal_stalker
]);