$_POST json_encode

0

Witam, mam pytanie wysłałem sobie jsona postem i nie wiem jak go obronić.

Zrobiłęm sobię

$json = json_encode($_POST);

print_r($json);

I to mi zwraca https://gyazo.com/fee43d88216d71f11abfcf8f3c57e62f

Jak to obrobić te dane z data żebym mógł wysłać odpowiednie dane w treści maila.

Proszę o pomoc!
Pozdrawiam!

0

Po co używasz json_encode ?
Jeśli wysyłasz metodą POST to po stronie serwera tylko dajesz $_POST['mail'] a json_encode jest zbędne.
Poczytaj więcej a nie kombinuj..

0

Jeśli Twoje dane jsonowe, które przesyłasz są w parametrze data to zrób json_decode($_POST['data']);

0

Nie wiem co robię źle ale wysyłam obiekt
Tutaj console.log tego co wysyłam pod "registration" https://gyazo.com/39425dff2bbcce20dc9ee4d723aaf32e

submit() {

                var registration = this.registration,
                    garbageType  = this.garbageType;

                console.log(registration);

                axios.post(
                    '/wysylka-emaili',
                    registration,
                    { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
                )
                    .then(function (response) {
                        //handle success
                        console.log(response);
                    })
                    .catch(function (response) {
                        //handle error
                        console.log(response);
                    });
            },

Po zrobieniu w pliku phpowym

$json = json_decode($_POST['data']);

echo $json;

Zwraca takie błędy
https://gyazo.com/39cc56d18722c1ca840319e7f44d0d22

0

@jakub40: ustawiasz header Content-Type na typ, który jest dla zwykłych formularzy, a przysyłasz JSON'a. Ustaw sobie application/json.

Na przyszłość:
application/x-www-form-urlencoded, to dane w takim formacie: foo=1&bar=2&baz=blblablabla
application/json, to dane w takim formacie: {"foo":1,"bar":2,"baz":"blblablabla"}

0

Okej tylko po ustawieniu tego headera zwraca mi pustego arraya, A w config->data te dane. To jest dobrze? Jezeli tak to jak wyciągnać dane z tamtegozakadka

https://gyazo.com/381ed19b87da8440fd534cf3d44bf000

1
Desu napisał(a):

@jakub40: ustawiasz header Content-Type na typ, który jest dla zwykłych formularzy, a przysyłasz JSON'a. Ustaw sobie application/json.

Na przyszłość:
application/x-www-form-urlencoded, to dane w takim formacie: foo=1&bar=2&baz=blblablabla
application/json, to dane w takim formacie: {"foo":1,"bar":2,"baz":"blblablabla"}

I teraz w $_POST['data'] masz właściwy obiekt json. I możesz sobie zrobić

$decodedObject = json_decode($_POST['data']);

Ach i na screenach wychodzi że możesz nie walidować maila poprawnie bo w którymś widać: email@email_pl - podłoga zamiast kropki

0
jakub40 napisał(a):

Okej tylko po ustawieniu tego headera zwraca mi pustego arraya, A w config->data te dane. To jest dobrze? Jezeli tak to jak wyciągnać dane z tamtegozakadka

https://gyazo.com/381ed19b87da8440fd534cf3d44bf000

1. Kombinujesz....
Kod JS zostaw taki jaki jest a po stronie serwera daj to:

// Wyświetli Ci tablice przesłaną postem
print_r($_POST);

2. Z tablicy dane wyciągasz tak:

$email = $_POST['email'];
$name = $_POST['name'];
// itd...

3. Kombinując jak Ty trzeba pisać....

$json = json_encode($_POST); // POST/Array == na ==> JSON
$json = json_decode($json, true); // JSON == na ==> ARRAY

print_r($json);

1 użytkowników online, w tym zalogowanych: 0, gości: 1