Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wysyłanie danych metodą post przez skrypt php
kukix
post 17.10.2008, 15:45:41
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Witam.
Potrzebuje wysłać dane do innego serwera metodą post.. ale przez skrypt php... nie przez formularz <form> ..

w jaki sposób coś takiego zrobić?

Jakich funkcji użyć.. ?
Będe wdzieczny za wszelkie wypowiedzi..

P.S. Potrzebne jest mi to do integracji z systeme eCard.. musze syłać dane za pomocą połączenia HTTP metodą POST.. i nastepnie odebrać wynik..

Ten post edytował kukix 17.10.2008, 15:46:08
Go to the top of the page
+Quote Post
wlamywacz
post 17.10.2008, 16:25:47
Post #2





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


cURL
Go to the top of the page
+Quote Post
kukix
post 17.10.2008, 18:34:41
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Znalazłem w internecie taką funkcje:

  1. <?php
  2. function p24_weryfikuj($p24_id_sprzedawcy,$p24_session_id,$p24_order_id,$p24_kwota="") {
  3.    $header  = "POST /transakcjanossl.php HTTP/1.1r\n";
  4.    $header .= "Host: secure.przelewy24.plr\n";
  5.    $header .= "Content-Type: application/x-www-form-urlencodedr\n";
  6.  
  7.    $fp = fsockopen ("secure.przelewy24.pl", 80, $errno, $errstr, 30);
  8.    $P[] = urlencode("p24_id_sprzedawcy")."=".urlencode($p24_id_sprzedawcy);
  9.    $P[] = urlencode("p24_session_id")."=".urlencode($p24_session_id);
  10.    $P[] = urlencode("p24_order_id")."=".urlencode($p24_order_id);
  11.    if($p24_kwota != "") $P[] = urlencode("p24_kwota")."=".urlencode($p24_kwota);
  12.    $post = join("&",$P);
  13.  
  14.    $req .= "Content-Length: ".strlen( $post )."r\nr\n";
  15.    $req .= $post;
  16.  
  17.    if (!$fp) {
  18.      die ("CONNECTION ERROR");
  19.    } else {
  20.      fputs ($fp, $header . $req);
  21.      $res = false;
  22.      while (!feof($fp)) {
  23.        $line = ereg_replace("[\nr]","",fgets ($fp, 1024));
  24.        if($line != "RESULT" and !$res) continue;
  25.        if($res)$RET[] = $line;
  26.        else $res = true;
  27.      }
  28.    }
  29.    fclose ($fp);
  30.    return $RET;
  31. }
  32. ?>


jest to funkcja konkurencyjnej firmy do ecard... jednak niebardzio wiem, co ta funkcja robi.. wiemm, że wysyła metoda post dane..
nie wiem, po co tutaj funkcja fputs() .. po cvo tutaj wrzucanie danych do pliku?
Go to the top of the page
+Quote Post
pyro
post 17.10.2008, 19:44:50
Post #4





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


nie dane do pliku, do polaczenia za pomoca http


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
kukix
post 18.10.2008, 00:54:31
Post #5





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

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


Dla potomności:
  1. <?php
  2. function moja_funkcja($wartosc1, $wartosc2, $wartosc3, $wartosc4) {
  3.    $P = array(); $RET = array();
  4.    $url = "https://ADRES STRONY";
  5.    $P[] = "zmiena1=".$wartosc1;
  6.    $P[] = "zmiena2=".$wartosc2;
  7.    $P[] = "zmiena3=".$wartosc3;
  8.    $P[] = "zmiena4=".$wartosc4;
  9.    //itd..
  10.  
  11.    $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
  12.    $ch = curl_init();
  13.    curl_setopt($ch, CURLOPT_POST,1);
  14.    if(count($P)) curl_setopt($ch, CURLOPT_POSTFIELDS,join("&",$P));
  15.    curl_setopt($ch, CURLOPT_URL,$url);
  16.    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  17.    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  18.    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  19.    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  20.    $result=curl_exec ($ch);
  21.    curl_close ($ch);
  22.  
  23.    return $result;
  24. }
  25. ?>


na początku podajem yadres www.. może być https://.. dalej zmienne, które wysyłamy do serwera... i na samym dole optrzymujemy rezultat.. możemy z nim robić co chcemy.. rozbijac na linie itd.. pozdr..
P.S. Kod który podalem w poscie wyżej, to jakieś kombinacje alpejscie z fputs itd.. ten drugi wg mnei jest lepszy.. bardziej uniwersalny

Ten post edytował kukix 18.10.2008, 00:58:31
Go to the top of the page
+Quote Post
kubek15
post 18.10.2008, 07:39:22
Post #6





Grupa: Zarejestrowani
Postów: 278
Pomógł: 3
Dołączył: 28.06.2008
Skąd: PL

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


a jeżeli ja mam taki formularz
  1. <form action="robbery.php" method="POST">
  2. <div>
  3. <h2>Okrążenie treningowe</h2>
  4. <p class="tdnp">&nbsp;</p>
  5.  
  6. <p class="tdnp">Ten trening będzie kosztował Cię 10$.</p>
  7. <p>Czas Treningu (już wykorzystano 00:00:00): <select name="mjz" size="1" class="input"><option value="600">10 minuty</option><option value="1200">20 minuty</option><option value="1800">30 minuty</option><option value="2400">40 minuty</option><option value="3000">50 minuty</option><option value="3600">60 minuty</option><option value="4200">70 minuty</option><option value="4800">80 minuty</option><option value="5400">90 minuty</option><option value="6000">100 minuty</option><option value="6600">110 minuty</option><option value="7200">120 minuty</option></select><input type="submit" class=input value="Wykonaj!"></p><p>Trenuj na okrążeniach testowych, aby zdobyć doświadczenie! Zaimponuj Twojemu sponsorowi swoim występem tak aby, wydał na Ciebie i Twój sprzęt troszkę swoich pieniędzy!</p></div>
  8. </form>

to co mam wpisać to tego skryptu co jest w poscie wyżej?


--------------------
Go to the top of the page
+Quote Post
dsk
post 18.10.2008, 09:05:18
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 3
Dołączył: 7.03.2006

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


  1. <?php
  2. function post($url, $fields = array())
  3. {
  4.   $ch = curl_init();
  5.   curl_setopt($ch, CURLOPT_POST,1);
  6.   curl_setopt($ch, CURLOPT_POSTFIELDS, join("&",$fields));
  7.   curl_setopt($ch, CURLOPT_URL,$url);
  8.   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  9.   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  10.   $result=curl_exec ($ch);
  11.   curl_close ($ch);
  12.  
  13.   return $result;
  14. }
  15.  
  16. $fields['mjz'] = 600;
  17. $fields['argument2'] = 'asdasd';
  18. $fields['argument5'] = 'qqw111';
  19.  
  20. $res = post('robbery.php', $fields);
  21. ?>

albo zmienna fields jako tekst i przekazywac "mjz=600&argument2=asdasd&argument5=qqw111" - wtedy bez joina
Go to the top of the page
+Quote Post
kubek15
post 20.10.2008, 11:52:53
Post #8





Grupa: Zarejestrowani
Postów: 278
Pomógł: 3
Dołączył: 28.06.2008
Skąd: PL

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


nie działa mi to niewiem czemu. Ja chcę tylko przesłać argument dla wartości 600 inne mnie nie interesują. Gdzie mam wpisac link?

prosze napiszcie jak bo bardzo mi na tym zależy


--------------------
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: 27.04.2024 - 17:03