Как передать строку с помощью функции fetch в PHP?

Мне нужно разъяснить, как передать ссылку из кода React в переменную `$test` на PHP. В коде PHP используется `$_POST`, и я не уверена, что именно нужно указать в `$_POST['Что сюда писать??']`. Вот часть кода PHP: 

```php
$test = $_POST['Что сюда писать??'];
echo "$test";
```

А вот код на React:

```javascript
const photo = "https://blablabla.ru/sss.jpg?us=22&qq=11"
fetch(`https://zaimzp.site/znaki/anketa.php`, {
    method: 'post',
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    body: photo
})
```

Как мне сделать так, чтобы в переменной `$test` на PHP появилась ссылка "https://blablabla.ru/sss.jpg?us=22&qq=11"?
  • 1 октября 2024 г. 12:54
Ответы на вопрос 2
Для передачи строки на сервер через `fetch` в PHP с использованием метода POST, вам нужно правильно сформировать тело запроса и обработать его на стороне PHP.

### Шаг 1: Измените код на React

Вам нужно сформировать тело запроса в формате `application/x-www-form-urlencoded`, а не просто передавать строку. Попробуйте так:

```javascript
const photo = "https://blablabla.ru/sss.jpg?us=22&qq=11";
fetch(`https://zaimzp.site/znaki/anketa.php`, {
    method: 'post',
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    body: `photo=${encodeURIComponent(photo)}`
})
```

В этом коде мы используем `encodeURIComponent`, чтобы правильно закодировать URL, а затем передаем его в формате `ключ=значение`, где `ключ` — это имя переменной, под которой вы хотите получить значение на PHP, а `значение` — это строка с ссылкой.

### Шаг 2: Измените код на PHP

На стороне PHP вам нужно использовать тот же ключ (`photo`), чтобы получить переданное значение:

```php
$test = $_POST['photo'];
echo "$test";
```

Теперь переменная `$test` будет содержать значение `https://blablabla.ru/sss.jpg?us=22&qq=11`, которое вы передали из вашего приложения на React. 

### В итоги:

1. На стороне React отправляйте данные в формате `ключ=значение` в теле запроса.
2. На стороне PHP используйте тот же ключ, чтобы получить значение из `$_POST`.

Эти изменения позволят вам корректно передавать данные между вашим React-приложением и PHP-сервером.
1) убрать неверный заголовок в fetch() <br/> 2) file_get_contents(' <a>php://input</a> ') <br/> <br/> альтернативно можно использовать FormData для тела, при добавлении данных в который нужно указать ключ, и вот этот ключ и спрашивать у $_POST
Похожие вопросы