Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: adres serwera wystawiającego obraz z mojego serwera
Forum PHP.pl > Forum > Przedszkole
-tomekszm-
Witam
Tak na szybko czyli bez zakładania konta...

W jaki sposób mogę sprawdzić na jakich stronach wyświetlany jest mój baner który znajduje się na moim serwerze? Link do banera wygląda mniej wiecej tak <img src="http://sewer.pl/strona.php?baner=123&uzytkownik=12345"> Mogę z niego odczytać adres IP jednak będzie to chyba adres komputera gdzie odpalana jest przeglądarka a nie serwer gdzie wyświetlany jest mój baner. Jak zatem "dobrać się" do użytkowników którzy wystawią mój baner na swoich stronach? Dobrze byłoby wiedzieć kto gdzie go wystawia żeby mieć nad tym jakąś kontrolę. Wiem że mogę zrobić to na zasadzie HTTP_REFERER ale zadziała to jedynie w przypadku kliknięcia na banerek, co jednak gdy baner będzie wisiał gdzieś ale nikt w niego nie kliknie?
Hazel
To da się w ogóle coś takiego zrobić?
Czego to ludzie nie wymyślą z tym PHP, niedługo będzie można wszystko tongue.gif
Też chciałbym się dowiedzieć, jak coś takiego zrobić, ale niestety patrzę na to dość sceptycznie. Moim zdaniem to nie jest wykonalne.
-tomekszm-
No własnie nie wiem czy to w ogóle możliwe, ale może jest jakiś haxorski sposób smile.gif wszystkie zmienne globalne przerobiłem i nic... jedyne co mi przychodzi do głowy to sposób z wykorzystaniem javascript, ale to takie nieeleganckie... wolałbym tego uniknąć, no i może przeglądarka krzyczeć że CSS...
Hazel
Może dlatego, że nie jestem hackerem, to też nie mam pomysłu na coś takiego. Nawet z wykorzystaniem JS ciężko byłoby mi kminić, ale pewnie łatwiej niż w PHP. Jedyne co mi przychodzi do głowy, to jakieś wykorzystanie cURL, ale żadnego kodu Ci tu nie napiszę, bo nie wiem do końca, jak miałoby to wyglądać, ba, nie wiem nawet, czy dobrze myślę. Hacking i wszelkie pokrewne to jedna z moich gorszych stron. Ale spokojnie - jesli jest na to jakikolwiek sposób w PHP, to raczej na pewno ktoś Ci go tutaj napisze winksmiley.jpg
franki01
Mozna zrobic male zabezpieczenie hotlink.

  1. <?php
  2. if(strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false && $_SERVER['HTTP_HOST'] != '') {
  3. // kod ktory bedzie wykonywany w razie, gdy banner jest na innej stronie, np:
  4. }
  5.  
  6. // dalsza czesc kodu pokazujaca banner
  7. ?>


Pisane z palca, wiec jak cos to poprawiac smile.gif
-tomekszm-
Tylko że mi nie chodzi o zabezpieczenie przed umieszczaniem moich fotek gdzie indziej (bo na to się jak najbardziej zgadzam), tylko o kontrolę tego procederu... żebym mógł sprawdzić na jakich stronach ktoś umieścił baner (czy to nie jakieś XXX albo z wirusami). Jak pisałem, jak ktoś kliknie to jest luz, mam jego adres strony itp. poprzez HTTP_REFERER, jednak co w wypadku gdy banner jest tylko wyświetlany i jeszcze nikt w niego nie kliknął. Czy da się jakimś sposobem (bez wykorzystania javascript) sprawdzić na jakiej stronie wyświetla się mój baner...?
franki01
Ale naglowek Referer nie jest wysylany tylko po kliknieciu, ale tez po tym jak sciezka do pliku jest w tagu <img>. Wiec uzywac $_SERVER['HTTP_REFERER'] mozesz uzywac nawet wtedy, jak w <img> jest banner, a user wcale w niego nie musi kliknac.
Hazel
worriedsmiley.gif
Z tego co wiem, to akurat w tej zmiennej jest adres strony, z której przyszedł dany user, czyli wartość URLa odwołującego do strony na przykład przez link...
franki01
Tak, ale to nie znaczy ze odwolanie do pliku moze nastapic tylko przez <a>. Naglowek referer jest wysylany tez przy takich tagach, jak <iframe>, <object>, <img>, nawet gdy w stylach jest okreslony jakis obrazek jako tlo (background: url('image.gif') - image.gif dostaje jako referer nazwe pliku css). Wiec tutaj mozna spokojnie korzystac z tej metody z $_SERVER['HTTP_REFERER'] smile.gif
-tomekszm-
rzeczywiście smile.gif HTTP_REFERER działa również w przypadku img smile.gif śliczne dzięki, teraz wszystko działa tak jak chciałem! smile.gif czego to sie człowiek może dowiedzieć od fachowców smile.gif
brzuchalski
spróbój tego:
  1. <?php
  2. // zapisanie do bazy danych albo o pliku
  3. // $_SERVER['HTTP_REFERER'];
  4.  
  5. header("Cache-Control: no-cache, must-revalidate");
  6. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  7. header('Content-type: image/jpg');
  8. header('Content-Disposition: inline');
  9. readfile('BANER.jpg');
  10. ?>

przed pierwszym header zapisz do bazy albo do pliku HTTP_REFERER i IP i co tam jeszcze potrzebujesz BANER.jpg to przykladowy plik z którego czyta
franki01
Cytat(brzuchalski @ 3.01.2008, 00:39:16 ) *
spróbój tego:
  1. <?php
  2. // zapisanie do bazy danych albo o pliku
  3. // $_SERVER['HTTP_REFERER'];
  4.  
  5. header("Cache-Control: no-cache, must-revalidate");
  6. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  7. header('Content-type: image/jpg');
  8. header('Content-Disposition: inline');
  9. readfile('BANER.jpg');
  10. ?>

przed pierwszym header zapisz do bazy albo do pliku HTTP_REFERER i IP i co tam jeszcze potrzebujesz BANER.jpg to przykladowy plik z którego czyta



Umiesz czytac ze zrozumieniem? Problem byl zupelnie inny a tym bardziej ze zostal juz rozwiazany.
brzuchalski
za szybko przeczytalem lol
franki nie mów że uraziłem Ciebie ;p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.