Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przekierowanie na stronę z danymi POST
pkr
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Witam, potrzebuję napisać skrypt, który przekierowuje na daną stronę https wraz z formularzem POST. Zapewne jest to proste zagadnienie z cURL, lecz nie jestem za bardzo zorientowany w temacie. Przeglądałem dokumentację PHP ale nie mogłem znaleźć odpowiednich informacji. Z góry dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
emtiej
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


header

  1. header("Location: www.stronaaaaaa.pl/index.php?id=$id&zmienna=$zmienna&zmienna2=$zmienna2"); // możesz metodą post wysłać duuużo danych na inny adres w ten sposób


Ten post edytował emtiej 18.01.2010, 13:54:08
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(emtiej @ 18.01.2010, 13:53:02 ) *
header

  1. header("Location: www.stronaaaaaa.pl/index.php?id=$id&zmienna=$zmienna&zmienna2=$zmienna2"); // możesz metodą post wysłać duuużo danych na inny adres w ten sposób

To jest $_GET, a nie $_POST (IMG:style_emoticons/default/winksmiley.jpg) Poza tym wcale nie tak duużo, długości urli są ograniczone.

Ten post edytował darko 18.01.2010, 13:57:08
Go to the top of the page
+Quote Post
pkr
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Ważne dla mnie jest, aby to POSTem szło. Zmienne nie mogą być widoczne w adresie.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
apewne jest to proste zagadnienie z cURL, lecz nie jestem za bardzo zorientowany w temacie. Przeglądałem dokumentację PHP ale nie mogłem znaleźć odpowiednich informacji.

http://pl2.php.net/manual/pl/function.curl-setopt.php
pierwszy z brzegu komentarz:
Cytat
<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

A tego typu komentarzy jest wiecej...
Go to the top of the page
+Quote Post
emtiej
post
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Sory mój błąd... "musk" nie taki już (IMG:style_emoticons/default/biggrin.gif)

W takim razie sam jestem ciekawy jak wysłać dane post na inny adres...

Może to ci pomoże http://xion.org.pl/2009/09/19/przekierowanie-z-post-em/ chociaż nie wiem w jakim celu chcesz przekierować te dane, a to by nam trochę wyjaśniło

Ten post edytował emtiej 18.01.2010, 14:13:19
Go to the top of the page
+Quote Post
pkr
post
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


@nospor - niestety w ten sposób nie mogę uzyskać przekierowania. Wyświetla się tylko zwrócona treść. Jeśli http zamienię na https to już w ogóle nic się nie wyświetla.

@emtiej - chodzi mi o integracje skryptu z Dotpay. Muszę napisać skrypt, który wysyła formularz na https://ssl.dotpay.pl przez PHP.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no to piszesz normalny formularz, ktory w action ma:
..action="https://ssl.dotpay.pl"...
I juz ci form leci na dotpay (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
darko
post
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wysyła, to nie to samo, co przekierowuje. (Nie)głupie pytanie: nie możesz po prostu podać adresu https://ssl.dotpay.pl dla wartości atrybutu action formularza?
Go to the top of the page
+Quote Post
pkr
post
Post #10





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Normalny formularz musi być jeszcze parsowany pod kątem wysokości wpisanej kwoty. Dlatego nie mogę wysłać go bezpośrednio do Dotpay. JS odpada, gdyż można wyłączyć. Chyba muszę wysłać to do innego skryptu, dopiero potem przez cURL do Dotpay.
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Normalny formularz musi być jeszcze parsowany pod kątem wysokości wpisanej kwoty.
Przeciez nawet jak sparsujesz, a potem jakims cudem przekierujesz na dotpay, to koles w dotpay i tak bedzie mogl wpisac inna kwote
Go to the top of the page
+Quote Post
pkr
post
Post #12





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Jak wyślę POSTem do dotpay to kwoty już nie można edytować. Można wybrać kanał płatności oraz wpisać dane nadawcy.
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jak wyślę POSTem do dotpay to kwoty już nie można edytować.
no ok, tu mnie masz (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
pkr
post
Post #14





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


No i tu jest problem (IMG:style_emoticons/default/smile.gif) muszę zrobić przekierowanie SSL wraz z POSTem, a nie bardzo wiem jak. A może ma ktoś inny pomysł na rozwiązanie tego problemu?
Go to the top of the page
+Quote Post
darko
post
Post #15





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(pkr @ 18.01.2010, 14:45:07 ) *
No i tu jest problem (IMG:style_emoticons/default/smile.gif) muszę zrobić przekierowanie SSL wraz z POSTem, a nie bardzo wiem jak. A może ma ktoś inny pomysł na rozwiązanie tego problemu?

Może help/faq/manual Dotpay coś podpowie ?
Go to the top of the page
+Quote Post
starach
post
Post #16





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


http://www.php.net/manual/en/function.header.php#89447
  1. /*
  2. Found this script after much despair, should be useful to lot of people.
  3. To submit a form using POST method through PHP, just add the data to be posted as header. This essentially saves one extra html page sent to the browser when user has to be redirected. Mostly found this technique useful for redirecting to payment gateways.
  4. */
  5.  
  6. <?php
  7. $host = "www.example.com";
  8. $path = "/path/to/script.php";
  9. $data = "data1=value1&data2=value2";
  10. $data = urlencode($data);
  11.  
  12. header("POST $path HTTP/1.1\r\n" );
  13. header("Host: $host\r\n" );
  14. header("Content-type: application/x-www-form-urlencoded\r\n" );
  15. header("Content-length: " . strlen($data) . "\r\n" );
  16. header("Connection: close\r\n\r\n" );
  17. header($data);
  18. ?>
(IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
pkr
post
Post #17





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 13.02.2008

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


Rozwiązanie podesłane przez Staracha ciekawie wygląda. Wyskakuje mi tylko ciągle Internal Server Error (IMG:style_emoticons/default/sad.gif) Co powinienem wpisać do $path i $host żeby wysłać na https://ssl.dotpay.pl/ ?
Go to the top of the page
+Quote Post
PawelDanielewski
post
Post #18





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 19.01.2010

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


Cytat(pkr @ 18.01.2010, 13:44:47 ) *
Witam, potrzebuję napisać skrypt, który przekierowuje na daną stronę https wraz z formularzem POST. Zapewne jest to proste zagadnienie z cURL, lecz nie jestem za bardzo zorientowany w temacie. Przeglądałem dokumentację PHP ale nie mogłem znaleźć odpowiednich informacji. Z góry dzięki za pomoc (IMG:style_emoticons/default/smile.gif)


pkr myślę, że na siłę utrudniasz sobie życie.

Jeśli obawiasz się, że internauta wpisze za małą kwotę sprawdź ją NIE NA WYJŚCIU do Dotpay`a a na księgowaniu plikiem z URLC.

  1. if($_POST['amount']<$moja_kwota){
  2. }


Jeśli natomiast zależy Ci aby po kliknięciu w przycisk formularza nie kierował na ssl.dotpay.eu a jeszcze stronę pośrednią (nie wiem w sumie po co, może chcesz wyświetlić kod na tej stronie do śledzenia konwersji).

Najprościej.
1. Podłącz sobie jQuery
2. Nadaj id swojemu formularzowi np. id="moj_formularz" zaraz za method="post"
3. zainicjuj na onload funkcję submit()

Taki oto kod wstawiasz pomiędzy <head></head>
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  2. <script language="javascript">
  3. $(document).ready(function(){
  4. $("#moj_formularz").submit( function () {
  5. return false;
  6. } );
  7. });
  8. </script>


Skrypt spowoduje, że po wejściu na stronę, formularz z automatu zostanie wysłany POSTEM do dotpay`a bez potrzeby kliknięcia w przycisk zatwierdzający formularza.


1. A jeśli boisz się, że ktoś wyłączy JS`a i będzie edytował pola formularza... uwierz mi, że JS nie ma tu niewiele do rzeczy. Jeśli dobrze pamiętam prosta i darmowa wtyczka do FireFox`a
https://addons.mozilla.org/en-US/firefox/addon/3829
jest w stanie dowolnie modyfikować dane o które tak się obawiasz. Wysokość kwoty, którą płaci klient powinno sprawdzać się na końcu na poziomie skryptu z parametru URLC. Jeśli internauta "cwaniakuje" i zamiast 100 zł wprowadzi na zmodyfikowaej zmiennej np. 20 zł, skrypt nie dopisze mu do bilansu tej kwoty a Ty będziesz miał wybór. Zrobić zwrot czy zachować wpłatę w ramach "kary".


2. cURL nie ma tutaj zastosowania.

3. Swoją drogą, dzisiaj napisałem artykuł o tym jak w trybie automatycznym integrować prawidłowo dotpay -> http://www.paweldanielewski.pl/index.php/2...enie-dotpay-v2/

Cytat(pkr @ 18.01.2010, 13:44:47 ) *
Witam, potrzebuję napisać skrypt, który przekierowuje na daną stronę https wraz z formularzem POST. Zapewne jest to proste zagadnienie z cURL, lecz nie jestem za bardzo zorientowany w temacie. Przeglądałem dokumentację PHP ale nie mogłem znaleźć odpowiednich informacji. Z góry dzięki za pomoc (IMG:style_emoticons/default/smile.gif)


pkr myślę, że na siłę utrudniasz sobie życie.

Jeśli obawiasz się, że internauta wpisze za małą kwotę sprawdź ją NIE NA WYJŚCIU do Dotpay`a a na księgowaniu plikiem z URLC.

  1. if($_POST['amount']<$moja_kwota){
  2. }


Jeśli natomiast zależy Ci aby po kliknięciu w przycisk formularza nie kierował na ssl.dotpay.eu a jeszcze stronę pośrednią (nie wiem w sumie po co, może chcesz wyświetlić kod na tej stronie do śledzenia konwersji).

Najprościej.
1. Podłącz sobie jQuery
2. Nadaj id swojemu formularzowi np. id="moj_formularz" zaraz za method="post"
3. zainicjuj na onload funkcję submit()

Taki oto kod wstawiasz pomiędzy <head></head>
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  2. <script language="javascript">
  3. $(document).ready(function(){
  4. $("#moj_formularz").submit( function () {
  5. return false;
  6. } );
  7. });
  8. </script>


Skrypt spowoduje, że po wejściu na stronę, formularz z automatu zostanie wysłany POSTEM do dotpay`a bez potrzeby kliknięcia w przycisk zatwierdzający formularza.


1. A jeśli boisz się, że ktoś wyłączy JS`a i będzie edytował pola formularza... uwierz mi, że JS nie ma tu niewiele do rzeczy. Jeśli dobrze pamiętam prosta i darmowa wtyczka do FireFox`a
https://addons.mozilla.org/en-US/firefox/addon/3829
jest w stanie dowolnie modyfikować dane o które tak się obawiasz. Wysokość kwoty, którą płaci klient powinno sprawdzać się na końcu na poziomie skryptu z parametru URLC. Jeśli internauta "cwaniakuje" i zamiast 100 zł wprowadzi na zmodyfikowaej zmiennej np. 20 zł, skrypt nie dopisze mu do bilansu tej kwoty a Ty będziesz miał wybór. Zrobić zwrot czy zachować wpłatę w ramach "kary".


2. cURL nie ma tutaj zastosowania.

3. Swoją drogą, dzisiaj napisałem artykuł o tym jak w trybie automatycznym integrować prawidłowo dotpay -> http://www.paweldanielewski.pl/index.php/2...enie-dotpay-v2/

Ten post edytował PawelDanielewski 19.01.2010, 05:26:56
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:35