Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyładnie danych między podstronami metodą POST bez użycia `form`
Forum PHP.pl > Forum > PHP
kanlukasz
Cześć,

Uproszczony opis problemu:
Chciałbym przekazać z pliku index1.php do pliku index2.php jakieś dane metodą POST, ale nie mogę użyć w tym wypadku formularza.
Chciałbym jednak, aby to wydarzyło się mniej więcej tak, jak w przypadku wysyłki formularzem, czyli przesyłam dane -> otwiera sie index2.php i tam mam w tablicy globalnej $_POST wszystkie przesłane wartości

Co próbowałem:
Po przejrzeniu Googla widzę, że jest wiele wątków, gdzie wspomina się o wysyłce danych cURL'em.
Podjąłem więc taką próbę

Mój index1.php:
Kod
$ch = curl_init('http://localhost:8000/index2.php');
curl_setopt_array($ch, array(
  CURLOPT_POST => TRUE,
  CURLOPT_POSTFIELDS => ['hello' => world],
  CURLOPT_RETURNTRANSFER => TRUE

));
$output = curl_exec($ch);

Mój index2.php:
Kod
var_dump($_POST);

Co nie działa:
Niestety, ale dane sie nie przekazują - $_POST jest pusta. Wydaje mi się, że chyba źle rozumiem zasadę przesyłania danych cURL'em?
Czy w ogóle może powinienem to zrobić jakoś całkowicie inaczej?
trueblue
Brakuje pewnie wpisu w /etc/hosts
Powinien być: 127.0.0.1 localhost

Będzie działać na: http://127.0.0.1:8000/index2.php

P.S.

  1. ['hello' => 'world'],
kanlukasz
Też myślałem, że to problem ze wględu na lokalny host, ale sprawdzałem teraz na zdalnym serwerze i efekt ten sam.

1. Otwieram index1.php
2. Potem odświeżam index2.php i niestety zwraca mi pustą:


PS. literówka poprawiona, ale nadal bez zmian
trueblue
Dane przesłane z index1.php nie wiszą w powietrzu i nie czekają dopóki otworzysz index2.php.

Dane są przesyłane i odbierane w index2.php (w momencie wywołania). Możesz to sprawdzić dodając do index1.php, na końcu:
  1. echo $output;
kanlukasz
Ok, faktycznie, zwraca.

No dobrze, a co w przypadku, gdy ja chcę tymi danymi zarządzać potem już w pliku index2.php?
Chciałbym, aby plik index1.php posłużył tylko do przesłania tych danych, a resztę działań chciałbym wykonywać w index2.php

nospor
W sensie chcesz zeby uzytkownik widzial wynik w index2.php?

Moze napisz dokladnie co chcesz zrobic a nie co ci sie wydaje ze nalezy zrobic bo wyglada jakbys troche przekombinowal.
wojtek1904
Mi wydaje się że mu chodzi o to żeby po kliknięciu np w przycisk na stronie index1.php przenosiło go na stronę index2.php wraz z danymi POST wink.gif
kanlukasz
Cytat(wojtek1904 @ 22.07.2020, 16:53:38 ) *
Mi wydaje się że mu chodzi o to żeby po kliknięciu np w przycisk na stronie index1.php przenosiło go na stronę index2.php wraz z danymi POST wink.gif


Dokładnie tak!
I staram się ogarnąć jak mogę to zrobić inaczej niż za pomocą formularza
trueblue
Google: redirect with post

https://stackoverflow.com/a/15161640
nospor
A nie mozesz poprostu w index.php includowac index2.php? Przeciez oba pliki sa obok siebie.
wojtek1904
A formularz z polami hidden odpada?
Tomplus
Formularz z polami hidden jest ok, o ile nie zapisujesz tam danych wrażliwych dla działania aplikacji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.