Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przesyładnie danych między podstronami metodą POST bez użycia `form`
kanlukasz
post 21.07.2020, 08:04:41
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2020

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
trueblue
post 21.07.2020, 08:34:19
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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


Ten post edytował trueblue 21.07.2020, 08:42:35


--------------------
Go to the top of the page
+Quote Post
kanlukasz
post 21.07.2020, 08:45:32
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2020

Ostrzeżenie: (0%)
-----


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

Ten post edytował kanlukasz 21.07.2020, 08:48:55
Go to the top of the page
+Quote Post
trueblue
post 21.07.2020, 08:49:17
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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;


--------------------
Go to the top of the page
+Quote Post
kanlukasz
post 21.07.2020, 08:55:44
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2020

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
nospor
post 21.07.2020, 09:52:48
Post #6





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wojtek1904
post 22.07.2020, 15:53:38
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2016

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kanlukasz
post 22.07.2020, 15:56:47
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2020

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 22.07.2020, 16:01:49
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Google: redirect with post

https://stackoverflow.com/a/15161640


--------------------
Go to the top of the page
+Quote Post
nospor
post 22.07.2020, 16:27:55
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wojtek1904
post 23.07.2020, 11:57:23
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2016

Ostrzeżenie: (0%)
-----


A formularz z polami hidden odpada?
Go to the top of the page
+Quote Post
Tomplus
post 23.07.2020, 17:54:35
Post #12





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Formularz z polami hidden jest ok, o ile nie zapisujesz tam danych wrażliwych dla działania aplikacji.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 19:31