![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
sprawa wygląda tak. mam skrypt1 na stronie1. w pliku xml mam liste adresów www (do kórych mam prawa administracyjne). pod kazdym z tych adresów mam skrypt. i teraz tak. na stronie numer jeden wywoluje skrypt, który to ma wywołać skrypty na stronach z mojej listy xml. moj skrypt1 wysyła zmienne do docelowych skryptów, i czeka na ich odpowiedz. jezeli n skryptów zwróciło wartosci True to skrypt1 kończy działanie sukcesem.
próbowałem to zrobić poprzez file_get_contents, ale robi sie straszny bałagan, gdyż na stronie docelowej znow musze wywolac file_get_contents na stronę pierwotną, zwrócic warość true albo false... no i jak zapisywać licznik prób udanych (true) o nieudanych(false) (IMG:style_emoticons/default/questionmark.gif) czy istnieje jakis prostszy sposob (IMG:style_emoticons/default/questionmark.gif) ktos sugerował curl. czy warto, i jak to sie je bo czytalem manual i nie moge tego rozgryźć (IMG:style_emoticons/default/questionmark.gif) a moze jest coś prostszego, bardziej wydajnego?? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisałeś w temacie: cURL. W Twoim przypadku będzie na prawdę niewiele kodu (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
ok. wiec tak... skrypt1.php odpala poprzez cURL skrypt na stronie docelowe, i teraz aby przesłać zmienne z powrotem, no tym tej docelowej stronie tez musze odpalic porzez cURL skrypt ze strony pierwotnej (IMG:style_emoticons/default/questionmark.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie, skrypt1.php wchodzi na stronę tak jakbyś sam wszedł przez przeglądarkę. Zatem otwierając jakiś link serwer już mu zwraca wynik, i ten wynik cURL Ci podaje.
1. skrypt1.php (serwer 1) wywołuje skrypt2.php (serwer 2) 2. serwer 2 włącza skrypt2.php który coś tam robi i zwraca wynik (czyli niby wyświetla stronę) 3. skrypt1.php odbiera wynik i zapisuje go do zmiennej 4. skrypt1.php przerabia to co otrzymał Proponuję, żeby na drugim serwerze, skrypt2.php przyjmował jakis parametr klucza, tak, żeby nikt niepowołany nie mógł go sobie otoworzyć. IMHO drugi skrypt najlepiej jakby zwracał wynik w formie xml, lub zserializowanej tablicy, wtedy jego obróbka po stronie skrypt1.php będzie łatwiejsza |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za pomoc. zatem do dzieła.
edit: no ale jak skrypt2 ma zwracać zmienną do skryptu1 (IMG:style_emoticons/default/questionmark.gif) bo wyslać zmienną do skrypt2 daje rade, ale jak z powrotem dostać jakąś zmienną (IMG:style_emoticons/default/questionmark.gif) Ten post edytował metoda 26.08.2009, 15:21:20 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
skrypt2.php robi echo lub print
Patrz: 1. odpalasz skrypt1.php -> ten tak jakby wchodzi na stronę skrypt2.php, podaje klucz 2. skrypt2.php sprawdza czy klucz jest poprawny, jeśli tak zwraca jakieś dane (np zserializowaną tablicę, czy xml) 3. skrypt1.php odbiera te dane, i dalej na nich operuje skrypt1.php
skrypt2.php
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
skrypt2.php robi echo lub print dzieki, pomogłeś, o to właśnie mi chodziło.. próbowałem z instrukcją return ale nie dawało rady EDIT: mam niestety problem, a dokładnie chodzi o funkcje unserialize(); wszystko dziala OK jeżeli nie używam Curla czyli : taki kod działą poprawnie dając rezultat: a:2:{i:0;s:3:"abc";i:1;s:3:"cde";} cde ale gdy staram się odebrać tą zserializowaną tablicę za pomocą curla, to wyświetla się komunikat że nie jest błąd z odserializowaniem : skrypt1.php
skrypt2.php wywołując skrypt1 dostaję taki komunikat: Notice: unserialize(): Error at offset 0 of 43 bytes in ... jak temu zaradzić, gdzie leży przyczyna (IMG:style_emoticons/default/questionmark.gif) Ten post edytował metoda 28.08.2009, 12:35:38 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz kodowanie pliku, bo możesz mieć nap UTF-8 z boom, i wtedy na początku pliku będziesz miał 3znaczki.
Z tym serialize to było tak na szybko, nie można na tym się opierać, bo skrypt zawsze może zwrócić błąd, nie zadziałać, może pojawić się error etc. Lepiej skorzystać z xml'a. Przynajmniej można po nim łatwo nawigować. sprawdź sobie co zwraca curl:
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
zwraca cos takiego :
string(44) " a:2:{i:0;s:3:"abc";i:1;s:3:"cde";} " no czyli chyba dobrze, nieee ? czy ta spacja na początku (IMG:style_emoticons/default/questionmark.gif) a jak to z xmlem zrobic (IMG:style_emoticons/default/questionmark.gif) na stronie skrypt2 zrobic dokument XML i nie zapisywać go na tamtym serwerze tylko dać echo (IMG:style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli tylko spacje to możesz użyć trim. Ja bym się upewnił co do kodowania pliku. Niech wszędzie będzie te samo (utf-8 bez BOM) i będzie raczej ok.
(IMG:http://img195.imageshack.us/img195/2999/screenfpr.png) Tak czy inaczej, jak już pisałem: xml - tak, przez zwykłe echo (IMG:style_emoticons/default/smile.gif) Oczywiście możesz go zapisywac na serwerze - jako cache, gdzie w przypadku ponownego wywołania takiego samego zapytania zwracać już utworzony plik, zamiast męczyć serwer ponownym generowaniem, ale to już odrębny temat (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 22.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
dzięki. hehhehe, błąd był w tym, że znacznik <?php był dany po trzech spacjach.... ehhh...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:49 |