Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Przesyładnie danych między podstronami metodą POST bez użycia `form`

Napisany przez: kanlukasz 21.07.2020, 08:04:41

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?

Napisany przez: trueblue 21.07.2020, 08:34:19

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'],

Napisany przez: kanlukasz 21.07.2020, 08:45:32

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

Napisany przez: trueblue 21.07.2020, 08:49:17

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. http://www.php.net/echo $output;

Napisany przez: kanlukasz 21.07.2020, 08:55:44

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


Napisany przez: nospor 21.07.2020, 09:52:48

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.

Napisany przez: wojtek1904 22.07.2020, 15: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

Napisany przez: kanlukasz 22.07.2020, 15:56:47

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

Napisany przez: trueblue 22.07.2020, 16:01:49

Google: redirect with post

https://stackoverflow.com/a/15161640

Napisany przez: nospor 22.07.2020, 16:27:55

A nie mozesz poprostu w index.php includowac index2.php? Przeciez oba pliki sa obok siebie.

Napisany przez: wojtek1904 23.07.2020, 11:57:23

A formularz z polami hidden odpada?

Napisany przez: Tomplus 23.07.2020, 17:54:35

Formularz z polami hidden jest ok, o ile nie zapisujesz tam danych wrażliwych dla działania aplikacji.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)