webForumDet fria alternativet

Avgöra om användaren laddar ner eller läser sidan

PHP

11 svar · 438 visningar · startad av nitro2k01

Medlem sedan aug. 20039 340 inlägg
Frågan#1

Finns det något sätt att avgöra om användaren högerklickar och väljer ladda ner eller om han tittar på sidan?
Rent exakt så ska jag försöka skydda javascript-kod så att den används om den anropas från en script-tagg, men inte om användaren som sagt försöker ladda ner koden.

Medlem sedan apr. 2002830 inlägg
#2

Så fort sidan har laddats in i browsern så har besökaren tillgång till koden.

Fast jag kom på hur du kanske skulle kunna göra... Du skapar ditt javascript i en php-fil... Filen ger en header av en text-fil om den anropas från en hemsida. Men om den inte anropas av en sida så visar den bara ett felmeddelande...

Vet inte riktigt hur man löser det i praktiken, men det är ju så att om du kör <script src="enfil.php"></script> så borde ju du kunna se vad som är refferer eller något. Om personen försöker "sno" scriptet och i browsern skriver in https://www.server.com/enfil.php så skall det alltså ge ett felmeddelande...

Testa lite, kanske funkar... Posta gärna svaret :bire

// Nippe

Medlem sedan juni 20019 024 inlägg
#3

Det är helt omöjligt.

Du får helt enkelt bygga en egen webbläsare som inte visar JavaScript och försöka få jordens befolkning att byta till denna läsare. Det är ett sätt, kanske inte det bästa, men det fungerar.

Medlem sedan aug. 20039 340 inlägg
#4

Exakt vad jag var ute efter: Hur man kollar referrer, och helst allt annat smått och gott i http-huvudet också.
Jag kan även ta det i samma inlägg: Vad heter motsvarande instring-funktion i PHP?

Medlem sedan feb. 20011 198 inlägg
#5

Du kan använda microsoft "screnc".
Men vad jag vet fungerar det bara med vbscript i IE.

Medlem sedan aug. 20039 340 inlägg
#6

Nån som faktiskt vet?

Medlem sedan juni 20014 290 inlägg
#7

Visst du kan kolla referrer men det äringe säker lösning eftersom en del brandväggar tar bort referrer av säkerhetskäl (så att man inte kan följa en användare).

Kan det vara strstr() du letar efter?
http://se.php.net/manual/en/function.strstr.php

Medlem sedan okt. 20023 030 inlägg
#8

Referer skickas ju ut även till sidor man hämtar. Låt säga att jag använder javascript.js i filen index.html. När jag då hämtar index.html i webbläsaren känner den av att jag har en referens till en script-fil vilken den självklart också måste hämta. När den gör detta anger den referer som index.html. Så även om du kollar referer så kommer det inte fungera.

r/ Jag skulle mer tro att det är strpos() han är ute efter. :)

Medlem sedan juni 20001 521 inlägg
#9

Jag är tveksam till om det blir helt säkert, men du kan ju prova något sån't här:

1. Skapa en kod som bygger tiden sidan laddas.

<? $kod = md5(gmdate("ymdhis")); ?>

2. Inkludera javascriptet och skicka med koden.

<script src="js.php?kod=$kod"></script>

3. Se till att js.php inte cachas

// Cache-koden hämtad från php.net
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");

4. Kolla att koden är korrekt i js.php

<? if($_GET["kod"] != md5(gmdate("ymdhis")){ exit; } ?>

Ovanstående är helt otestat, så jag vet inte om det fungerar.

Medlem sedan aug. 20039 340 inlägg
#10

Gislaved.net: läckert(TESTAR!)!
Nu vill jag bara veta hur man kollar referrer.
Edit: Och gärna vad http-huvudet har att bjuda i övrigt.

Medlem sedan aug. 20039 340 inlägg
#11

$HTTP_REFERER var det jag letade efter. Men fortfarande tacksam för att få veta vad mer man kan få ut från HTTP-huvudet.

Medlem sedan juni 20001 521 inlägg
278 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)