Cześć,
próbuję zasymulować sytuację, że użytkownik wysyła formularz HTML metodą POST. Nie ma tam żadnych plików ani załączników. Kilka pól, które trzeba wypełnić wartościami.
Jak mogę to zrobić z poziomu kodu PHP, bez tworzenia HTMLa i bez interakcji z UI?
2 Odpowiedzi
możesz również użyc np. postmana by wyslać reqest. nie musisz napisac w tedy grama kodu. Postman ma tez opcje wygenerowania kodu zapytamia w phpie, wiec wyklikujesz sobie wszystko, sprawdzasz czy dziala i generujesz kod curla do przeklejki
Niedawno robiłem coś podobnego i skorzystałem z CURLa. W zmiennej $data tworzysz strukturę danych takich, jak tworzyłbyś pola formularza w HTML:
<?php $data = array(); $data["personalData[firstName]"] = "Marcin"; $data["personalData[firstName]"] = "Wesel"; $data["visibility"] = "public"; $data["question[tags]"][0]['id'] = 1; $data["question[tags]"][0]['content'] = "php"; $data["question[title]"] = "Formularz HTML"; $curl = curl_init("https://kursphp.com"); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); var_dump($response);
Możesz też skorzystać z file_get_contents jeśli Twoje środowisko nie obsługuje CURLa. Przykład kodu znajdziesz tutaj: https://stackoverflow.com/questions/5647461/how-do-i-send-a-post-request-with-php