Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [HTML][JavaScript][XML]Przesyłanie XML metoda POST
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Witam


Nie wiem czy pisze w dobrym dziale ale chodzi o przesylanie XML metoda post na inny serwer.
Wiem jak dziala metoda post , znam podstawy javascript i html ale nie mialem nigdy do czynienia z xml.

Czy ktos mi moze z grubsza wytlumaczyc jak przesyla sie xml-a na inny serwer?

Dokladniej chodzi o weryfikacje numerow ktore znajduja sie na innym serwerze. Po przeslaniu danych : powiedzmy imienia i kodu przypisanego do imienia serwer na ktory jest wysylany owy xml odpowie potwierdzeniem czy istnieje taki uzytkownik/kod czy nie.

Prosze o wspazowki

Ten post edytował Wolfie 15.12.2008, 15:56:18
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie robi się tego w javascript.
Robisz to w php.
Do wysyłania służy curl.
Do parsowania xmla masz sporo bibliotek. Wystarczy poszukac na php.net.
Go to the top of the page
+Quote Post
Wolfie
post
Post #3





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


A moglbys mi napisac przyklad jak moznaby przeslac np taki plik xml :


<?xml version="1.0" encoding="UTF-8"?>
<zapytanie>
<id>5346</id>
<imie>500500500</imie>
<kod>589HG3P</kod>
</zapytanie>


I jeszcze takie pytanko , czy protokoly obu serwerow musza byc takie same aby mogly przeslac xml miedzy soba ?

Ten post edytował Wolfie 15.12.2008, 15:39:32
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie nie mógłbym.
http://wortal.php.pl/phppl/wortal/artykuly...rzez_formularze
No a jak chcesz przesłać? Jako plik czy jako tekst POST-em. Nie sprecyzowałeś.

A nie sadzisz ze bedziesz wysyłał http-em?
Go to the top of the page
+Quote Post
Wolfie
post
Post #5





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Mysle ze http ale za bardzo nie znam sie na wspolpracy ze soba serwerow.
Chce przeslac jako teks POST-em poniewaz dane musza byc zakodowane
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No to wejdz sobie chłopcze na http://php.net/curl_set_opt i tam jest pokazane jak wyslac cos postem. Jezeli wrocisz tutaj z pytaniem "jak to zrobić" to nie licz na odpowiedz. Pisze jak wół.
Go to the top of the page
+Quote Post
Wolfie
post
Post #7





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Ale mnie nie chodzi o przepisywanie kodu od kogos , slabo sie znam na php i taka dokumentacja mialo mi mowi.
Poprostu chcialbym aby ktos wytlumaczyl mi to z grubsza w bardziej przystepny sposob.

A co do linkow ktore przeslales to dzieki , moze cos uda mi sie z tego wypocic.

I jeszcze jedna sprawa.

W zasadzie nie wiem czy mam przeslylac plik czy tekst , poniewaz aplikacja ma wygladac tak ze uzytkownik bedzie podawal imie i kod , nastepnie to bedzie przesylane na serwer i tam weryfikowane a nie mam pojecia ktora metoda jest lepsza.
Poprostu chce przeslac xml na serwer! (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

Ten post edytował Wolfie 15.12.2008, 16:42:52
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Tlumacze ci z grubsza. Curl wysyła na podana przez ciebie strone xmla metoda POST. Tak jakbyś wpisal to w pole tekstowe formularza i wysłał. Co chcesz jeszcze wiedzieć.

Przeciez to proste jak kij od szczotki. Czego tutaj nie rozumiesz?
Parsowania xml? No niestety kolego. My programiści najpierw się uczymy, czytamy kursy, testujemy, szukamy w internecie rozwiazan dlaczego dana rzecz nam nie działa (to nie znaczy ze piszemy na forach z kazda rzecza) a dopiero potem pytamy o rzeczy których NAPRAWDE nie rozumiemy.
Masz podany najprostszy KOD jak wyslac dane POST-em
Kod
$ch = curl_init();

$data = array('name' => 'Foo', 'file' => 'DANE');

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

curl_exec($ch);


Ten post edytował wookieb 15.12.2008, 16:37:00
Go to the top of the page
+Quote Post
Wolfie
post
Post #9





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Ok. Dzieki za cierpliwosc. Dzisiaj bede nad tym siedzial testowal i programowal.
Licze ze sie uda napisac to do jutra do poludnia, jezeli nie, zglosze sie pewnie z bardziej skonkretyzowanymi problemami


Dzieki

Ok. Napisalem ponizszy skrypt :

Kod
<?php
$ch = curl_init('http://localhost:81/cUrl/test.xml');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);

//$data = array('name' => 'Foo', 'file' => 'DANE');

curl_setopt($ch, CURLOPT_URL, 'http://localhost:81/cUrl/test.xml');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Błąd #' . curl_errno($ch) . ': ' . curl_error($ch);
}

curl_close($ch);
?>



ktory korzysta z nastepujacego pliku xml o nazwie test.xml:

Kod
<?xml version="1.0" encoding="UTF-8"?>
<zapytanie>
<id>7658</id>
<imie>Piotr</imie>
<kod>6JN47CLU</kod>
</zapytanie>


Teraz mam problem w czym "zamknac" ten plik xml. Tzn czy on ma sie przesylac jako tablica czy jako tekst?
Jak to mniej wiecej ma wygladac ?
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie umiesz czytać... matury to ty raczej nie zdasz.
Kod
$data = array('xml' => file_get_contents('test.xml'));

curl_setopt($ch, CURLOPT_URL, 'ADRES SERWERA NA KTORY WYSYŁASZ A NIE XML');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);


Ten post edytował wookieb 16.12.2008, 10:51:17
Go to the top of the page
+Quote Post
Wolfie
post
Post #11





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Super. Teraz wszystko swietnie działa! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
a teraz takie male kolejne pytanko.
Jak zrobic zebym mogl z formularza zapisac pliki do xml-a?
Chodzi o to ze ten przesylany xml bedzie mial rozna tresc w zaleznosci co wpisze uzytkownik.
Jak rozwiazac taki problem?

Czy mozna xml zapisac jako plik php i przesylac do niego dane metoda np $_GET z formularza ?
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://php.net/file_put_contents
Go to the top of the page
+Quote Post
Wolfie
post
Post #13





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Napisalem sobie taki kodzik :

Kod
<?php

//echo $_GET['kod'];
//echo $_GET['telefon'];

//$target_file = "test.xml";

function file_put_contents('test.xml', 'hello world, Testing!');

?>


ale niestety wyskakuje blad :

Kod
syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')'



i nie mam pojecia skad on sie bierze , kod wyglada na prawidlowy

Ten post edytował Wolfie 16.12.2008, 13:28:38
Go to the top of the page
+Quote Post
ziqzaq
post
Post #14





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Chłopie popatrz na swój kod.
Co chcesz osiągnąć?
_Zadeklarować_ funkcję "file_put_contents" z dwoma parametrami, czy ją _wywołać_?
  1. <?php
  2. // Zadeklarowanie funkcji moja_funkcja
  3. function moja_funkcja($parametr) {
  4.    echo $parametr;
  5. }
  6.  
  7. // Wywołanie funkcji
  8. moja_funkcja("Podstawy PHP");
  9. ?>

Zdaję sobie sprawę, że można czegoś nie wiedzieć, ale dostałeś link do file_put_contents a tam są _przykłady_ użycia tej funkcji.

edit: tfu nie deklaracja tylko definicja funkcji

Ten post edytował ziqzaq 16.12.2008, 13:43:40
Go to the top of the page
+Quote Post
Wolfie
post
Post #15





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Oczywiscie ze chce wywolac funkcje:

Jednak gdy robie

Kod
file_put_contents('test.xml', 'hello world, Testing!');




wyskakuje cos takiego

Kod
Call to undefined function:  file_put_contents()
Go to the top of the page
+Quote Post
ziqzaq
post
Post #16





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Sorry, ale sądząc po twoim kodzie to nie było takie oczywiste.
1). Funkcje w PHP
2). Polecam czytać treść błędów. Np. "Call to undefined function: file_put_contents()" znaczy że funkcja "file_put_contents" jest niezdefiniowana. A więc google i - w moim przypadku - drugi link z odpowiedzią (pewnie w manualu do którego dostałeś link też to jest):
  1. <?php
  2.  if(!function_exists('file_put_contents')) {
  3.    function file_put_contents($filename, $data, $file_append = false) {
  4.      $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
  5.        if(!$fp) {
  6.          trigger_error('file_put_contents cannot write in file.', E_USER_ERROR);
  7.          return;
  8.        }
  9.      fputs($fp, $data);
  10.      fclose($fp);
  11.    }
  12.  }
  13. ?>
Go to the top of the page
+Quote Post
Wolfie
post
Post #17





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Wszystko pieknie tylko ze dlatego pisze w "przedszkolu" bo za bardzo sie nie orientuje jak ten kod dziala, patrzac na manuala malo z tego rozumiem, a Wy jeszcze mnie dobijacie ze matury nie zdam.
Jakbym umial czytac dokumentacje tak jak Wy to wogole bym sie tutaj nie pojawial.
Go to the top of the page
+Quote Post
wookieb
post
Post #18





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Tzn ze nie masz php5. A do zapisania zawartosci do pliku sluzy wtedy http://php.net/fwrite
Go to the top of the page
+Quote Post
Wolfie
post
Post #19





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

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


Napisalem taki kod :

Kod
<?php

$code = $_GET['kod'];
$tel =  $_GET['telefon'];

$filename = 'test.xml';
$data = 'Hello world, Test!';
$file_path = ".;c:\Program Files\WebServ\cUrl";

//file_put_contents('test.xml', 'hello world, Testing!');
if(!function_exists('file_put_contents')) {
    function file_put_contents($filename, $data, $file_append = false) {
      $fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
        if(!$fp) {
          trigger_error('file_put_contents cannot write in file.', E_USER_ERROR);
          return;
        }
      fwrite($fp, $data);
      fclose($fp);
    }
  }


?>



Ale w pliku docelowym test.xml nic sie nie pojawia, sa tylko stare znaczniki i wartosci.
Go to the top of the page
+Quote Post
wookieb
post
Post #20





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




jak ma się pojawić jak zakomentowałes wywołanie funkcji file_put_contents. Wez do ręki pierwszy lepszy kurs php. Przeczytaj go porządnie i dopiero wróć.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 25.08.2025 - 00:27