Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Treść z własnej strony udostępniona na cudzych stronach
Demoneos
post 26.07.2010, 11:42:38
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

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


Mam stronę o pogodzie i chciałbym dać możliwość umieszczenia np. ostatnich temperatur na innych stronach. Czy lepiej to zrobić przez zewnętrzne includowanie (czyli w PHP), czy może w JavaScript?


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 26.07.2010, 12:17:29
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


A jak Ty chcesz to osiągnąć za pomocą JS, która nie może odwoływać się do innych stron? Zrób to w PHP smile.gif


--------------------
Go to the top of the page
+Quote Post
Demoneos
post 26.07.2010, 13:49:45
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

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


Chodziło mi o coś takiego jak jest np. w reklamach Google - umieszczam kod reklamy w JS na swojej stronie, a on odwołuje się do skryptu JS na zewnętrznym serwerze.

PS Przed chwilą zrobiłem próbę z PHP i nie działa - prawdopodobnie połączenie zablokował serwer na którym znajduje się "cudza" strona (w której umieszczony został kod zawierający instrukcję include).

Ten post edytował Demoneos 26.07.2010, 13:58:09


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 26.07.2010, 14:00:01
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Nie wiem, jak to wygląda w reklamach Google, ale prawdopodobnie korzysta on z AJAX-a, więc to na jedno wychodzi. Rozwiązanie korzystające z PHP jest też o tyle dobre, że użytkownicy nie mający JS nic nie zobaczą, a tak prawdopodobnie wszyscy będą zadowoleni smile.gif

Cytat
PS Przed chwilą zrobiłem próbę z PHP i nie działa - prawdopodobnie połączenie zablokował serwer na którym znajduje się "cudza" strona (w której umieszczony został kod zawierający instrukcję include).

Daj kod smile.gif

Ten post edytował kamil4u 26.07.2010, 14:00:46


--------------------
Go to the top of the page
+Quote Post
Pawel_W
post 26.07.2010, 14:04:08
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(kamil4u @ 26.07.2010, 15:00:01 ) *
Nie wiem, jak to wygląda w reklamach Google, ale prawdopodobnie korzysta on z AJAX-a, więc to na jedno wychodzi. Rozwiązanie korzystające z PHP jest też o tyle dobre, że użytkownicy nie mający JS nic nie zobaczą, a tak prawdopodobnie wszyscy będą zadowoleni smile.gif

z jakiego ajaxa? przecież php może generować automatycznie pliki .js, ustawiasz tylko
  1. header('content-type: text/javascript');

i dalej generujesz sobie skrypt, który wyświetli Ci pogodę smile.gif

tak działają niektóre liczniki odwiedzin na stronę winksmiley.jpg

Ten post edytował Pawel_W 26.07.2010, 14:05:00
Go to the top of the page
+Quote Post
kamil4u
post 26.07.2010, 14:30:06
Post #6





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Oczywiście masz rację(zapomniałem sad.gif )


--------------------
Go to the top of the page
+Quote Post
!*!
post 26.07.2010, 14:34:25
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A tak z ciekawości to jak wstawiasz to na innej stronie?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Demoneos
post 26.07.2010, 14:51:16
Post #8





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

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


Wstawiam tak:
  1. $includeFile = file_get_contents("http://moja-strona.pl/skrypt.php");
  2. echo $includeFile;


Próbowałem też za pomocą include, ale również nie działało. Tutaj można przeczytać więcej:
http://www.learnphponline.com/errors/url-f...r-configuration


Cytat(Pawel_W @ 26.07.2010, 15:04:08 ) *
z jakiego ajaxa? przecież php może generować automatycznie pliki .js, ustawiasz tylko
  1. header('content-type: text/javascript');

i dalej generujesz sobie skrypt, który wyświetli Ci pogodę smile.gif

tak działają niektóre liczniki odwiedzin na stronę winksmiley.jpg


No no, nie wiedziałem że takie cuda są możliwe smile.gif


Ten post edytował Demoneos 26.07.2010, 14:46:24


--------------------
Go to the top of the page
+Quote Post
!*!
post 26.07.2010, 16:24:18
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


To nie wygląda zbyt ładnie. niby dlaczego użytkownik który to wkleja musi mieć PHP? Prawie wszystkie widgety które są do wklejenia oparte są o JS k?óry wyświetla zawartość strony/skryptu.

Takie rozwiązanie jest lepsze z kilku powodów

1. Użytkownik nie musi mieć PHP
2. Nie zdradzasz w jakim języku została napisana strona a to przekłada się na +1 do bezpieczeństwa
3. Użytkownik nie musi się martwić o nic poza wklejeniem kodu, w Twoim przykładzie może być to kolizyjne.

Także przejdź na widget JS który wyświetli zawartość Twojej strony. Dzisiaj i tak KAŻDY ma włączony JS, tylko fanatycy bocznej dziurki w nosie go wyłączą. Warto dbać o margines?

I kamil4u nie pisz głupot że się nie da.
  1. <script type="text/javascript" src="http://moja-strona.pl/skrypt.php"></script>

a na tej stronie dajesz później
[JAVASCRIPT] pobierz, plaintext
  1. document.write("Treść")
[JAVASCRIPT] pobierz, plaintext


Ten post edytował !*! 26.07.2010, 16:34:50


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Demoneos
post 27.07.2010, 09:19:28
Post #10





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

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


W skrypcie wstawiłem kod:
  1. <?php
  2. header('Content-type: text/javascript');
  3. document.write("Hello world");
  4. ?>

Natomiast na stronie która ma wczytać ten kod wstawiłem:
  1. <script type="text/javascript" src="http://moja-strona.pl/skrypt.php"></script>


Niestety na tej stronie nie widać napisu "Hello world", natomiast gdy uruchamiam skrypt bezpośrednio, to dostaję błąd:
  1. <br />
  2. <b>Fatal error</b>: Call to undefined function write() in <b>skrypt.php</b> on line <b>3</b><br />


Czy popełniłem gdzieś błąd?

Ten post edytował Demoneos 27.07.2010, 09:20:15


--------------------
Go to the top of the page
+Quote Post
!*!
post 27.07.2010, 09:54:04
Post #11





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


[JAVASCRIPT] pobierz, plaintext
  1. document.write("Hello world");
[JAVASCRIPT] pobierz, plaintext


To JS, nie umieszczaj tego w znaczniku PHP, a jak już to przez echo.

Ten post edytował !*! 27.07.2010, 10:07:19


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Demoneos
post 27.07.2010, 09:58:32
Post #12





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

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


Wyrzuciłem to poza php:
  1. <?php
  2. header('Content-type: text/javascript');
  3. ?>
  4. document.write("Hello world");


i działa smile.gif A jeżeli chciałbym teraz coś zrobić w sekcji PHP - np. przypisać zmiennej jakąś wartość, to jak tą zmienną mógłbym przekazać do document.write, żeby ją wyświetlić?

Ten post edytował Demoneos 27.07.2010, 09:59:02


--------------------
Go to the top of the page
+Quote Post
!*!
post 27.07.2010, 10:06:04
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Tak jak napisałem wyżej.

  1. <?php
  2. header('Content-type: text/javascript');
  3. $zmienna = 'Hello world';
  4. echo 'document.write("'.$zmienna.'");';
  5. ?>


Ten post edytował !*! 27.07.2010, 10:06:45


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Demoneos
post 27.07.2010, 13:54:54
Post #14





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

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


Cytat(!*! @ 26.07.2010, 17:24:18 ) *
Także przejdź na widget JS który wyświetli zawartość Twojej strony. Dzisiaj i tak KAŻDY ma włączony JS, tylko fanatycy bocznej dziurki w nosie go wyłączą. Warto dbać o margines?


Chciałbym jednak zadbać o margines ;) Wystarczyłoby wkleić na stronę taki kod:
  1. <script type="text/javascript" src="http://moja-strona.pl/skrypt.php"></script>
  2. <noscript>
  3. <iframe src="http://moja-strona.pl/skrypt.php">
  4. Twoja strona nie obsluguje ramel
  5. </iframe>
  6. </noscript>


i wówczas również Ci którzy mają wyłączoną JavęScript mogliby się cieszyć prognoza pogody na swojej stronie smile.gif
Czy takie rozwiązaniem ma jakieś wady, czy też powody dla których niewskazane jest go stosować?

Ten post edytował Demoneos 27.07.2010, 13:55:22


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 27.07.2010, 14:02:31
Post #15





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(Demoneos @ 27.07.2010, 13:54:54 ) *
Chciałbym jednak zadbać o margines winksmiley.jpg Wystarczyłoby wkleić na stronę taki kod:
  1. <script type="text/javascript" src="http://moja-strona.pl/skrypt.php"></script>
  2. <noscript>
  3. <iframe src="http://moja-strona.pl/skrypt.php">
  4. Twoja strona nie obsluguje ramel
  5. </iframe>
  6. </noscript>


i wówczas również Ci którzy mają wyłączoną JavęScript mogliby się cieszyć prognoza pogody na swojej stronie smile.gif
Czy takie rozwiązaniem ma jakieś wady, czy też powody dla których niewskazane jest go stosować?

Wszystko ma swoje wady, zalety. Nie widzę przeszkód, aby to wyświetlić w ten sposób oczywiście rozmiar ramki musisz dopasować do wymagań - lecz z drugiej strony, kto dziś ma wyłączony javascript? Jest to tak niewielka garstka ludzi... smile.gif


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Crozin
post 27.07.2010, 14:03:32
Post #16





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Nie zdradzasz w jakim języku została napisana strona a to przekłada się na +1 do bezpieczeństwa
A co to ma do rzeczy. Równie dobrze taki kod może wykonać w Pythonie, Rubym czy Javie.

Co do problemu - odpowiedź jest całkiem prosta, ale wymaga troszkę pracy: przygotuj dobre API dla deweloperów - dzięki temu, z usług Twojej strony będzie korzystać większa grupa ludzi. Nic nie stoi na przeszkodzie byś umożliwił dostęp z poziomu JS, PHP i innych języków wykorzystywanych po stronie serwera czy nawet z poziomu zwykłego iframe.

Popatrz sobie jak mają to zrobione serwisy typu FaceBook czy Twitter. Nie musisz pisać oczywiście tak rozbudowanego, ale możesz się wzorować na ich rozwiązaniach.
Go to the top of the page
+Quote Post
!*!
post 27.07.2010, 19:20:05
Post #17





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(Crozin @ 27.07.2010, 15:03:32 ) *
A co to ma do rzeczy. Równie dobrze taki kod może wykonać w Pythonie, Rubym czy Javie.


To że nie wiesz w jakim języku została napisana strona. Trudno zrobić kuku aplikacje w javie myśląc że jest to python. Oczywiście jak do dobrze zamaskujesz bo "skrypt.php" to raczej tego nie robi.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Crozin
post 27.07.2010, 20:06:02
Post #18





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Trudno zrobić kuku aplikacje w javie myśląc że jest to python.
O ile nie próbujesz zrobić "kuku" poprzez wstrzyknięcie własnego kodu to nie ma to większego znaczenia.
Cytat
To że nie wiesz w jakim języku została napisana strona.
Kod po stronie mojego serwera:
  1. <?php
  2.  
  3. $data = array(
  4. array('title' => 'Wpis #1', 'id' => 1),
  5. array('title' => 'Wpis #2', 'id' => 2),
  6. array('title' => 'Wpis #3', 'id' => 3),
  7. array('title' => 'Wpis #4', 'id' => 4)
  8. );
  9.  
  10. function arrayToXml(array $data) {
  11. $document = new DOMDocument();
  12.  
  13. $rootNode = $dom->createElement('entries');
  14. foreach ($data as $element) {
  15. $e = $rootNode->createElement('entry', $element['title']);
  16. $e->setAttribute('id', $element['id']);
  17. $rootNode->appendChild($e);
  18. }
  19.  
  20. $document->appendChild($rootNode);
  21. return $document->saveXml();
  22. }
  23.  
  24. if ($_SERVER['REQUEST_URI'] == '/entires') {
  25. echo (isset($_GET['format']) && $_GET['format'] == 'json') ? json_encode($data) : arrayToXml($data);
  26. }


Różne wersje API (pseudokod):

java script:
Kod
var entries = MyAPP.apiCall('/entries?format=json');
PHP:
Kod
$entries = $myApp->apiCall('/entries');
Java:
Kod
EntriesCollection entries = myApp.apiCall("/entries");
Python:
Kod
entries = myApp.apiCall('/entries')


I jak niby mając którykolwiek z kodów "dla klienta" rozpoznasz czy na serwerze używam PHP czy Ruby?
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: 19.07.2025 - 17:06