Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Lettura dati inviati in x-www-form-urlencoded

    ciao!

    da una piccola app in react invio i dati in questo modo:
    codice:
        handleSaveBtnClick = () => {
            var titolo = document.getElementById("add_titolo").value;
            var autore = document.getElementById("add_au").value;
            var editore = document.getElementById("add_ed").value;
            var prezzo = document.getElementById("add_pr").value;
            var isbn = document.getElementById("add_isbn").value;
            var note = document.getElementById("add_note").value;
    
            if (titolo.trim() == "" || autore == '*' || editore == '*') {
                this.setState({show: true});
            } else {
                if (prezzo.trim() == "") {
                    prezzo = 0;
                }
    
                const postData = "title=" + titolo + "&author=" + autore + "&editor=" + editore;
    
                axios.post(BOOK_ADD, postData, {
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    }
                }).then((response) => {
                    console.log(response);
                }, (error) => {
                    console.log(error);
                });
            }
        };
    ma non capisco come devo elaborarli in php.
    ho provato questo codice:
    Codice PHP:
    $data file_get_contents("php://input");
    var_dump($data); 
    sto sicuramente sbagliando qualcosa, ma non capisco se lato client o lato server.

  2. #2
    tralasciando un attimo le richieste inviate con axios, sto facendo delle prove con postman.

    questo l'header della richiesta:
    codice:
    POST /api/book/add.php HTTP/1.1
    Host: www.sito.com
    Content-Type: application/json
    User-Agent: PostmanRuntime/7.19.0
    Accept: */*
    Cache-Control: no-cache
    Postman-Token: 55d32547-2556-4477-9eca-c8e6cf6f61c3,9c351863-08df-4e7c-a561-fad3e6342511
    Host: www.mattepuffo.com
    Accept-Encoding: gzip, deflate
    Content-Length: 51
    Connection: keep-alive
    cache-control: no-cache
    
    {
        "title": "ciao",
        "author": 101,
        "editor": 53
    }
    questo il codice PHP:
    codice:
    header("Access-Control-Allow-Origin: *");
    header('Access-Control-Allow-Methods: GET, POST');
    header("Access-Control-Allow-Headers: Content-Type");
    header("Content-Type: application/json");
    
    $data = json_decode(file_get_contents("php://input"));
    var_dump($data);
    questa la risposta che vedo su postman:
    codice:
    object(stdClass)#1 (3) {
      [
        "title"
      ]=>
      string(4) "ciao"
      [
        "author"
      ]=>
      int(101)
      [
        "editor"
      ]=>
      int(53)
    }
    quello che non capisco è come faccio ad elaborare i dati in PHP.

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,689
    In $_POST non li trovi i dati?

  4. #4
    ho risolto con queste modifiche.

    lato client:
    codice:
        handleSaveBtnClick = () => {
            var titolo = document.getElementById("add_titolo").value;
            var autore = document.getElementById("add_au").value;
            var editore = document.getElementById("add_ed").value;
            var prezzo = document.getElementById("add_pr").value;
            var isbn = document.getElementById("add_isbn").value;
            var note = document.getElementById("add_note").value;
    
            if (titolo.trim() == "" || autore == '*' || editore == '*') {
                this.setState({show: true});
            } else {
                if (prezzo.trim() == "") {
                    prezzo = 0;
                }
    
                const postData = {
                    "title": titolo,
                    "author": autore,
                    "editor": editore
                };
    
                axios.post(BOOK_ADD, postData, {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                }).then((res) => {
                    console.log('OK');
                    console.log(res);
                }, (error) => {
                    console.log('KO');
                    console.log(error);
                });
            }
        };
    lato server:
    Codice PHP:
    header("Access-Control-Allow-Origin: *");
    header('Access-Control-Allow-Methods: GET, POST');
    header("Access-Control-Allow-Headers: Content-Type");
    header("Content-Type: application/json");

    $object json_decode(file_get_contents("php://input"));
    if (!empty(
    $object->title) && !empty($object->author) && !empty($object->editor)) {
        echo 
    json_encode(array(
                
    "res" => "ok",
                
    "message" => "Libro aggiunto."
            
    )
        );
    } else {
        echo 
    json_encode(array(
                
    "res" => "ko",
                
    "message" => "Titolo, autore ed editore sono obbligatori."
            
    )
        );


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.