$_POST waardes in php bestand zijn gevuld maar zie geen waardes
Ik heb een php bestand waar via een url een POST request op gedaan wordt waarmee ik de $_POST waardes kan inzien.
Nu krijg ik alleen geen waardes te zien, het huidige script om deze $_POST waardes in te zien heb ik hieronder geplakt. Ik zie beide echo teksten "Test1" en "Test2", dus er is een POST request en de $_POST['data'] is niet leeg.
Alleen met de beide onderstaande methodes krijg ik geen value terug bij zowel status als amount.
Wat doe ik fout waarom ik geen waardes te zien krijg?
Ter info; op mijn hosting maak ik gebruik van php8.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
//Test 1
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['data'])){
$p = xml_parser_create();
xml_parse_into_struct($p,$_POST['data'],$vals,$index);
xml_parser_free($p);
// Index keys
$status_index = $index['STATUS'][0];
$amount_index = $index['AMOUNT'][0];
// Value keys
$status = $vals[$status_index]['value'];
$amount = $vals[$amount_index]['value'];
// Echo Value
echo "Test1";
echo "Status: ". $status ." | Amount: ". $amount ."";
}
//Test 2
echo "Test2";
echo "Status: ". $_POST['STATUS'] ." | Amount: ". $_POST['AMOUNT'] ."";
?>
//Test 1
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['data'])){
$p = xml_parser_create();
xml_parse_into_struct($p,$_POST['data'],$vals,$index);
xml_parser_free($p);
// Index keys
$status_index = $index['STATUS'][0];
$amount_index = $index['AMOUNT'][0];
// Value keys
$status = $vals[$status_index]['value'];
$amount = $vals[$amount_index]['value'];
// Echo Value
echo "Test1";
echo "Status: ". $status ." | Amount: ". $amount ."";
}
//Test 2
echo "Test2";
echo "Status: ". $_POST['STATUS'] ." | Amount: ". $_POST['AMOUNT'] ."";
?>
Heb je al een var_dump($_POST) geprobeerd?
var_dump($_POST)
Krijg ik ook helemaal geen waardes terug.
Ik heb ook dit geprobeerd:
$json = file_get_contents('php://input');
$data = json_decode($json);
Maar ook hierbij blijft $data leeg.
Vind het wel apart omdat de check hierop
Blijkbaar wel iets ziet in de post data...
staat daar wel in dat je wilt "post"en? (en niet GET)
Deze xml-data staat in het POST-veld "data".
Hoe dat "posten" eruit ziet weet ik niet want dat is van een derde partij.
Dan log je dat toch?
En zit er nog ergens een redirect in het verhaal (.htaccess). Bijvoorbeeld van http naar https of van www.domain.nl naar domain.nl ? Want met een redirect wordt het een get-request.
En sturen ze ook daadwerkelijk de xml in "data" en niet in de body van het post-request?
Je zou ook
kunnen proberen en kijken waar daarin zit.
Ivo P op 19/05/2023 14:11:00:
Want met een redirect wordt het een get-request.
Hangt er een beetje vanaf. Als het een 307- of 308-redirect is, blijft het een POST.
zo leer nog altijd wat bij :-)