@Stalk007

Почему не записываются данные в файл?

В вордпресс у меня есть два сниппета:
JS, который снимает отпечаток посетителя и отправляет их в бек, я этот код проверил, он все отправляет, по крайне мере должен:
const fpPromise = import('https://openfpcdn.io/fingerprintjs/v4')
      .then(FingerprintJS => FingerprintJS.load())

    // Get the visitor identifier when you need it.
    fpPromise
      .then(fp => fp.get())
      .then(result => {
        // This is the visitor identifier:
        const visitorId = result.visitorId
        console.log(result)
        fetch('http://localhost:81', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json;charset=utf-8'
      },
      body: JSON.stringify(result)
    })
      })

PHP, на счет него не уверен, так как первый раз работаю), он должен данные принять и записать в файл:
$json = file_get_contents('php://input');

$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT']; 
$dateTime = date('Y-m-d H:i:s');

file_put_contents('fingerprints/1.json', $json . PHP_EOL, FILE_APPEND);

$visitorData = [
  'ip' => $ip,
  'browser' => $browser,
  'dateTime' => $dateTime
];

$visitorJson = json_encode($visitorData);
  
file_put_contents('fingerprints/1.json', $visitorJson . PHP_EOL, FILE_APPEND);


И может быть такое, что backend не примет данные потому-что они большие?
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Как все новички, вы оперируете понятием "может быть".
"может быть сервер не принимает". "по крайне мере должно отправлять". "насчет РНР не уверен"
Так делать никогда не надо.
У вас есть все возможности узнать то, что происходит на самом деле. Факты.
Вот фактами-то и надо всегда оперировать.
Какая вам разница, "может ли быть такое, что backend не принимает"? Может. И чем вам это знание поможет?
Вам не нужно знать абстрактно, вам нужно знать, принял ли ваш конкретный сервер ваши конкретные данные.
А узнать это очень просто. Если "backend не принимает", то но выдаст ошибку. Все что вам нужно - это посмотреть, что он возвращает. Глазами.
Плюс на всякий случай проверить, настроен ли backend на вывод ошибок.

При работе с аякс запросами надо всегда держать открытой вкладку Сеть в инструментах разработчика в браузере.
И смотреть, во-первых, что ваш фронт отправляет, а во-вторых - что сервер отвечает. Там вообще может быть 404. Поскольку никакого конкретного адреса вы на сервере не указали.
Плюс если ответ сервера есть, то надо смотреть его содержимое на предмет ошибок.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы