|
popjovan
Gost
|
 |
« poslato: Sreda, 18. Jul 2001. 02:33:00 » |
|
Situacija je sledeca: postoji server na kome se nalazi HTML u kome prikazujemo sliku koju generise PHP skript. Kako da najlakse u PHP skriptu ocitamo refering URL na HTML stranu koja poziva sliku? Varijabla getenv("HTTP_REFERER") ne vraca korektnu vrednost vec samo "".
|
|
|
|
|
Sačuvana
|
|
|
|
|
zombie
Gost
|
 |
« Odgovor #1 poslato: Sreda, 18. Jul 2001. 21:08:00 » |
|
Dao si vrlo malo podataka oko problema, ali cu pokusati da ti pomognem. Kao prvo, napravi dva fajla na serveru: prvi (recimo proba.htm) u kome ces da imas link na drugi (recimo info.php). U drugi fajl stavi samo i onda potrazi u informacijama HTTP_REFERER.
To isto ce biti sadrzano i u $HTTP_REFERER kao i u getenv(...). Ako ga ni u ovako pozvanom skriptu nema referer, onda nest nije u redu sa browserom (najverovatnije) ili sa serverom (Apache, manje verovatno).
|
|
|
|
|
Sačuvana
|
|
|
|
|
popjovan
Gost
|
 |
« Odgovor #2 poslato: Subota, 21. Jul 2001. 00:55:00 » |
|
Pa u ovom slucaju radi, ali problem nastaje kada iz proba.html pozivam <img src=" http://drugi server/slika.php"> gde je slika.php PHP skript koji generise sliku 1x1 piksel ali istovremeno loguje posetu. Znaci kako u ovom slucaju izvuci pravi HTTP_REFERER?
|
|
|
|
|
Sačuvana
|
|
|
|
|
acim
|
 |
« Odgovor #3 poslato: Subota, 21. Jul 2001. 11:40:00 » |
|
Da li skript proba.html dobija ispravnu vrednost za referrera? Ukoliko je odgovor pozitivan, onda ovom drugom skriptu to prosledi preko parametra. Dakle: <img src=" http://drugi server/slika.php?ref=$HTTP_REFERER"> Smesna je jedna stvar oko referrera, a cak ni Amerikanci ne znaju odakle je nastala. Rec referrer se pise sa dva r, a kao HTTP varijabla je napisana sa jednim. Ocigledno je ovaj deo HTTP specifikacije radio neko sa istoka  )
|
|
|
|
|
Sačuvana
|
Boban Aćimović, urednik linux.rs
|
|
|
|
Bosko
Gost
|
 |
« Odgovor #4 poslato: Subota, 21. Jul 2001. 18:17:00 » |
|
Izgleda da ovi odgovori nisu resenje. Kako mi se cini, ti hoces da napravis kao neku dodatnu statistiku za counter ili sl.? U svakom slucaju, molim te mi javi na pbosko@beotel.yu resenje, kad ga nadjes. Hvala.
|
|
|
|
|
Sačuvana
|
|
|
|
|
zombie
Gost
|
 |
« Odgovor #5 poslato: Nedelja, 22. Jul 2001. 07:55:00 » |
|
Pogledaj radni primer http://harmony.dreamharmony.com/zombie/linux/slika.htm">ovde. Ako hoces da ne vidis sliku, onda stavi <img src="..." border=0 width=0 height=0>. Evo ga fajl http://harmony.dreamharmony.com/zombie/linux/slika.txt">slika.txt u koji se loguju posete na ovaj fajl preko slika.php. Upozorenje: svaki put kad gledas slika.htm, uradi refresh u browseru da bi se poseta ulogovala. Takodje, svaki put kad gledas slika.txt uradi refresh da bi video najnoviju verziju. Fajl slika.php sadrzi samo: <? fwrite(fopen("slika.txt", a), $HTTP_REFERER."nr"); ?> Ali bi za tvoje potrebe trebao i da: 1) vraca odgovarajuce hedere da je u pitanju slika 2) da vrati pravu sliku 3) da vrati neke hedere koji ce da kazu browseru da ne keshuje ovu sliku nego da je svaki put ucita ponovo 4) da podatke o refereru (url, datum, vreme...) upisuje u bazu Ako ti treba dalja pomoc u vezi sa necim od ovih stvari (samo sam ih nabrojao, podrazumevajuci da znas kako se te stvari radi) slobodno pitaj opet.
|
|
|
|
|
Sačuvana
|
|
|
|
|
popjovan
Gost
|
 |
« Odgovor #6 poslato: Četvrtak, 26. Jul 2001. 01:24:00 » |
|
Pogledao sam "radni primer" http://harmony.dreamharmony.com/zombie/linux/slika.htm">ovde, medjutim ne radi kako bi trebalo, odnosno nista ne upisuje u slika.txt. Kada sam probao da ucitam http://harmony.dreamharmony.com/zombie/linux/slika.php">direktno prijavljuje gresku: "Warning: fopen("slika.txt","a") - Permission denied in /var/www/html/zombie/linux/slika.php on line 2 Warning: Supplied argument is not a valid File-Handle resource in /var/www/html/zombie/linux/slika.php on line 2" Verovatno nisi podesio privilegije za slika.txt. Inace, sve gore navedene stavke 1) do 4) sam uspesno realizovao, ali jedino referring URL ne radi kako bi trebalo da radi.
|
|
|
|
|
Sačuvana
|
|
|
|
|
popjovan
Gost
|
 |
« Odgovor #7 poslato: Četvrtak, 26. Jul 2001. 01:52:00 » |
|
Problem je u tome sto na prvom serveru sa koga iz index.html pozivam <img src=" http://drugi server/slika.php> nema podrske za PHP, pa <img src=" http://drugi server/slika.php?ref=$HTTP_REFERER"> postavlja promenljivu $ref na "$HTTP_REFERER", znaci na ovaj string a ne na vrednost referring URL-a. Jedino resenje koje meni trenutno pada na pamet je da pomocu JS na prvom serveru zapamtim REFERRER u cookiu koji pokupim sa drugog servera, koji podrzava PHP i dalje obradim podatke, upisem u log i generisem sliku 1x1 pixel. Ima li neko mozda neko drugacije resenje?
|
|
|
|
|
Sačuvana
|
|
|
|
|
acim
|
 |
« Odgovor #8 poslato: Četvrtak, 26. Jul 2001. 12:37:00 » |
|
Na prvom serveru JavaScript moze da izmeni URL ove slike, pa samim time da doda i referrera u naziv. To je bolje resenje jer nema suvisnog koriscenja kolacica, mada ja u principu ne volim JavaScript resenja osim kada totalno nisu neophodna. Da si lepo objasnio zasto sve ovo hoces i o cemu se tacno radi, mozda bi dobio jos koje resenje.
|
|
|
|
|
Sačuvana
|
Boban Aćimović, urednik linux.rs
|
|
|
|
zombie
Gost
|
 |
« Odgovor #9 poslato: Petak, 27. Jul 2001. 22:40:00 » |
|
Moram da se izvinim u vezi onog prethodnog linka. Problem je bio u tome sto sam taj radni primer napravio na drugom mestu (na privatnom delu sajta firme gde radim, nevidljivom sa neta) i tamo ga isprobao, gde mi se desio isti ovaj problem.
Naime, problem je u tome da korisnik nobody (pod kojim se izvrsavaju skripte pod Apacheom) nije imao prava da pise u doticni fajl (slika.txt). Kada sam to ispravio i isprobao da li radi (i radilo je), onda sam sve ovo premestio na drugo mesto (na javni deo sajta), ali nisam ponovo isprobao da li sve radi.
Sada sve radi kako treba. Ponovo se izvinjanam.
|
|
|
|
|
Sačuvana
|
|
|
|
|
acim
|
 |
« Odgovor #10 poslato: Četvrtak, 09. Avgust 2001. 10:52:00 » |
|
Cekaj, ti u tom PHP skriptu zelis da vidis kada je referer tvoja HTML strana na drugom serveru? Zasto jednostavno tu informaciju ne ubacis kao ekstra parametar. Dakle, staticki HTML fajl bi trebalo da sadrzi liniju poput: <img src=" http://server_sa_phpom/putanja/generator_slika.php?ref=moja_strana"> U Samom PHP skriptu proveri da li postoji varijabla ref, pa ako postoji ti je upotrebi umesto originalne HTTP_REFERER, recimo: if ($ref == 'moja_strana') { $referer = ' http://server_bez_phpa/putanja/moja_staticka_strana.html';} else { $referer = $HTTP_REFERER; } Nadalje ce varijabla $referer sadrzati vrednost koja ti je potrebna za statistiku.
|
|
|
|
|
Sačuvana
|
Boban Aćimović, urednik linux.rs
|
|
|
|
popjovan
Gost
|
 |
« Odgovor #11 poslato: Četvrtak, 09. Avgust 2001. 12:28:00 » |
|
Ok, evo da probam da ponovo objasnim. Znaci zelim da pratim statistike posecenosti sajta, medju kojima je i refering URL. Problem je u tome sto Web server na kome se hostuje prezentacija nema podrsku za PHP pa se poziva slika koju generise drugi web server koji podrzava PHP. On prilikom generisanja ove slike (1x1 beli pixel) loguje statistike, sve rade bez problema osim ove za ref URL.
Inace, da li neko zna neke besplatne servise za pracenje statistika (ali da je counter nevidljiv)? Znaci nesto kao sto je do pre par nedelja pruzao thecounter.com.
|
|
|
|
|
Sačuvana
|
|
|
|
|
|
|
popjovan
Gost
|
 |
« Odgovor #13 poslato: Petak, 10. Avgust 2001. 00:54:00 » |
|
Opet me niste razumeli. Da ja zelim da pratim kada je poseta dosla sa moje strane, to ne bi bio nikakav problem. Jedno od logicnih i univerzalnih resenja je i ovo koje ste naveli. Medjutim, meni je potrebno da logujem sa kojih su sajtova dosle posete na moj sajt, ali tu je problem sto trenutno ovaj server gde se hostuje sajt nema PHP pa se ispomazem sa drugim serverom.
|
|
|
|
|
Sačuvana
|
|
|
|
|
acim
|
 |
« Odgovor #14 poslato: Petak, 10. Avgust 2001. 10:24:00 » |
|
Onda kao sto sam ti i rekao, u URL slike pomocu JavaScripta dodaj referrera. Evo korisnog http://javascript.internet.com/user-details/referrer.html">linka. No, bilo bi mnogo pametnije da dodas PHP i na drugi server, ukoliko vec radis nesto ozbiljno. Ovo sada se zove budzenje.
|
|
|
|
|
Sačuvana
|
Boban Aćimović, urednik linux.rs
|
|
|
|