$ _POST пусто после извлечения formData - PullRequest
0 голосов
/ 11 мая 2019

Когда я пытаюсь извлечь formData с POST из JS в PHP, я получаю пустой массив $ _POST (), несмотря на то, что код состояния равен 200 OK.Можете ли вы мне помочь?

function select_collection()
 {
  const tendina=document.querySelectorAll(".tendina");
   for(all of tendina)
        {
           all.addEventListener('change', aggiungi);
        }
    }
    function aggiungi(event){
        const tendina=event.target;
        const val=tendina.options[tendina.selectedIndex].value; 

        const row_box= tendina.parentNode.parentNode; 
        const child=row_box.childNodes;

            const url_image=child[0].childNodes[0].currentSrc;

            const id_google=child[1].childNodes[0].textContent.slice(11,);
            const titolo= child[1].childNodes[1].textContent.slice(8,);
            const autore= child[1].childNodes[2].textContent.slice(8,);
            const editore=child[1].childNodes[3].textContent.slice(9,);
            const pagine=child[1].childNodes[4].textContent.slice(8,);
            var formData = new FormData();
            formData.append('titolo_racc', val);
            formData.append('id_google', id_google);
            formData.append('titolo', titolo);
            formData.append('autore', autore);
            formData.append('editore', editore);
            formData.append('pagine', pagine);
            fetch('http://localhost/progetto/inserisci_contenuto.php',{
            method: "POST",
            body: formData
          }).then(onResponse).then(onText);

.tendina Это класс раскрывающихся менюù (выберите, вариант), название, автор, издатель и страницы относится к информации о томе книги.Я хочу отправить эту информацию на страницу PHP.

$conn=new mysqli($servername, $username, $password, $dbname);
if($conn->connect_error)
{
    die ("Connection failed " .$conn->connect_error);
}

if(isset($_POST["titolo_racc"]) && isset($_POST["id_google"] && isset($_POST["titolo"] && isset($_POST["autore"] && isset($_POST["editore"] && isset($_POST["pagine"]))
{
    print_r($_POST); // array ()
    print_r($_POST["titolo"]; //Undefined index:
}

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Я обнаружил, что проблема в session_start (), которую я использую для распознавания user_id. На самом деле, если я пытаюсь использовать $ _SESSION ["user"], я не знаю почему, это не работает.

Если я не напишу session_start (), все print_r и echo работают очень хорошо, в том числе с извлеченными значениями.

Странно то, что я использую метод сеанса на всех других php-страницах моего сайта.

0 голосов
/ 11 мая 2019

Избавиться от:

    headers: new Headers({
        "Content-Type": "application/json;"}),

это неверно, так как вы отправляете формат multipart/form-data.Вам нужно разрешить fetch() самому предоставлять этот заголовок, поскольку он должен включать строку-разделитель, которая генерируется случайным образом изнутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...