• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[PHP] Wyczekiwanie na dane przesłane metodą post

Object Storage Arubacloud
+1 głos
139 wizyt
pytanie zadane 26 września 2020 w PHP przez Marak123 Stary wyjadacz (11,190 p.)
Potrzebuje zrobić skrypt który będzie czekał na przesłanie danych bo po otwarciu strony dane nie będą przesłane tylko dopiero po wykonanie jakiejś czynności dane się prześlą ale nie wiem jak zrobić to aby php czekał na te dane i gdy odbierze te dane to dopiero wykona daną czynność.

Wie ktoś jak można takie coś zrobić??

3 odpowiedzi

0 głosów
odpowiedź 26 września 2020 przez Comandeer Guru (601,530 p.)
PHP nie działa w taki sposób. Aplikacja odpala się przy nadejściu żądania i kończy przy wysłaniu odpowiedzi, normalnie nie da się czekać na nowe żądanie (bo ono odpali całą aplikację od nowa). Musiałbyś uruchamiać PHP jako demona, np. przy pomocy ReactPHP.

Może dałoby się to zastąpić przez mechanizm sesji?
komentarz 26 września 2020 przez Marak123 Stary wyjadacz (11,190 p.)
zobaczę czy się da dzięki
0 głosów
odpowiedź 26 września 2020 przez SzkolnyAdmin Szeryf (86,360 p.)
Czy może chodzi oto, że interpreter zgłasza błąd dotyczący nieistniejącej zmiennej w tablicy $_POST? Jeśli tak, to zainteresuj się funkcją isset.
komentarz 26 września 2020 przez Marak123 Stary wyjadacz (11,190 p.)
ok dzięki
0 głosów
odpowiedź 29 września 2020 przez VBService Ekspert (253,340 p.)
edycja 29 września 2020 przez VBService

Przy dużej ilości zmiennych w formularzu można sprawdzenie zapisać tak:

Mamy:

if (isset($_POST['one']) || isset($_POST['two']) || isset($_POST['three']) ||
    isset($_POST['four']) || isset($_POST['five'])) {

  . . .
}

na:  
  
if ($_SERVER['REQUEST_METHOD'] == 'post') {
   
  $one = (isset($_POST['one'])) ? $_POST['one'] : ""; // Gdy String
  $two = (isset($_POST['two'])) ? $_POST['two'] : 0; // Gdy Integer, Float  
  $three = (isset($_POST['three'])) ? $_POST['three'] : true; // Gdy Boolean
  $four = (isset($_POST['four'])) ? $_POST['four'] : []; // Gdy Array
  $five = (isset($_POST['five'])) ? $_POST['five'] : null; // Gdy Any of above

  $result = $one;
} else {
  $result = "";
}

...
?>
<form method="post">
  <input type="text" name="one">
  <input type="number" name="two">
  ...
</form>
<pre id="result"><?php echo $result; ?></pre>

W tym przykładzie, przy pierwszym uruchomieniu wyświetlany jest tylko formularz i pusty element <pre>. Gdy "submit", przetwarzane są dane z formularza, i wyświetlany jest ponownie formularz, i ewentualny wynik w <pre>.

1
komentarz 29 września 2020 przez Marak123 Stary wyjadacz (11,190 p.)
Ok dzięki

Podobne pytania

0 głosów
0 odpowiedzi 128 wizyt
pytanie zadane 17 stycznia 2023 w JavaScript przez Antoni2422 Użytkownik (570 p.)
0 głosów
2 odpowiedzi 178 wizyt
pytanie zadane 4 maja 2016 w PHP przez Kuba Skoneczny Obywatel (1,780 p.)
0 głosów
1 odpowiedź 297 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...