php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
rausfinden, ob refresh bzw. F5 vom User gedrückt wurde...


 
Metallica
23-11-2001, 15:40 
 
Gibt's dafür in JS eine möglichkeit??
In verschiedensten Referenzen hab ich nix dazu gefunden??

Bitte dringend um Rat - ist wirklich sehr wichtig und ich bin wirklich am verzweifeln!

 
schmalle
23-11-2001, 18:39 
 
nicht dass ich wüsste. aber du könntest ja z.b. mit php zählen, wie oft die seite schon geladen wurde. in verbindung mit der IP sollte das ja kein problem darstellen ....

 
edvart
23-11-2001, 19:43 
 
wellcome,
(fast) alles geht auch das F5.

such einfach bei groups-google: http://groups.google.com/groups?q=f5+key+javascript&hl=en&sa=N&tab=ig

dort findest scripts und auch andere nette hinweise (z.B. geht nicht unter Netscape und vorsicht bei ami-tastatur)

ich hab keines der scripts probiert, aber normal geht das meistens.

ciao

 
pekka
23-11-2001, 21:49 
 
Hmm.. Javascript für solche essentiellen Sachen finde ich ein bisschen unsicher. Ich schliesse mich Schmalles Vorschlag an, zähle wie oft die betreffende Seite von derselben IP (oder dem Browser mit der selben Session-ID) in den letzten x Sekunden aufgerufen wurde.

 
Metallica
24-11-2001, 10:49 
 
danke euch allen vorerstmal.
@edvart:
hab jetzt zwei std. lang die beiträge bei groups-google durchgelesen und auch einiges ausprobiert. Aber funken tut das alles nur (wie du eh schon angemerkt hast) im IE. Davon hab ich leider nicht viel. Zusätzlich hab ich mit JS natürlich noch das Problem, dass man's ja abschalten kann.

Deshalb werd ich wohl den php-weg mal versuchen womit ich bei schmalle/pekka angelangt wären.
@schmalle/pekka:
mit php die IP mitzählen damit ich weiß wie oft die seite aufgerufen wurde ist ja schon mal ein guter Ansatz. Aber da kann ich ja noch immer nicht das eigentliche Refreshen verhindern.

Wenn ich's wirklich über php mache (ist wohl meine letzte Rettung) dann wäre es natürlich super, dass wenn zB dreimal refreshed wurde (also $count_refresh=3), eine Messagebox kommt die den user darauf hinweist oder noch besser, das refreshen erst gar nicht mehr ermöglicht.

Da fällt mir aber noch was zur IP checken ein. Über bestimmte Sites im Netz ist es doch möglich, andere Sites anonym zu "betreten" => dann hab ich aber ein Problem beim IP rausfinden?!?!

[Editiert von Metallica am 24-11-2001 um 11:03]

 
pekka
24-11-2001, 12:54 
 
Du hast Recht, mit IPs alleine wirst Du generell ein Problem haben, weil z.B. Surfer aus dem selben Firmennetzwerk dieselbe IP haben werden. Ein bisschen sicherer ist IP + Browserkennung ($HTTP_USER_AGENT), 100%ig sicher wäre die Benutzung von Sessions ("wie oft wurde diese Seite von dieser Session betrachtet?"). Sessions funktionieren auch ohne Cookies, wenn Du die Session-ID als GET-Parameter an alle URLs hängst (das lässt sich m.W. auch in der PHP-Session-Engine automatisch machen).

 
Metallica
24-11-2001, 13:25 
 
OK. Nehmen wir also die Session-ID.
Ich hab noch nie was damit gemacht.
IP ermitteln ist ja kein problem.
$ip = getenv(REMOTE_ADDR);
aber wie bekomme ich die Session-ID raus und wie hänge ich die dran??

Weißt Du vielleicht auch da noch Rat:
Wenn ich's wirklich über php mache (ist wohl meine letzte Rettung) dann wäre es natürlich super, dass wenn zB dreimal refreshed wurde (also $count_refresh=3), eine Messagebox kommt die den user darauf hinweist oder noch besser, das refreshen erst gar nicht mehr ermöglicht.

Anmerkung:
Nachdem ja jeder Browser anders reagiert oder bestimmte Dinge gar nicht unterstützt und man obendrein noch JS deaktivieren kann (was ich dann auch noch codemäßig prüfen müßte!), ist wohl der Weg über php bessere.


[Editiert von Metallica am 24-11-2001 um 13:23]

 
Metallica
26-11-2001, 14:46 
 
schmalle / pekka ???

habt ihr auf mich vergessen?
Es ist wirklich verdammt wichtig.

 
schmalle
26-11-2001, 15:15 
 
ich dachte es geht in deinem thread weiter?!?

den refresh kann man nicht abschalten .... wär ja auch noch schöner. du kannst nur z.b. folgendes machen:



if($count_ip > 3)
{ echo "schluss jetzt! ich will nicht, dass diese seite öfter als 3 mal refreshed wird :D"; }

 
Metallica
26-11-2001, 19:03 
 
ja sorry. es geht eh hier weiter.
aber die session_id brauch ich auch noch anderwertig. deswegen hab ich 'nen thread eröffnet.

die meldung allein bringt mir aber nicht viel wenn der User weiter refreshen kann.
Oder wie hast du das sonst gemeint??

 
schmalle
27-11-2001, 11:03 
 
ich weiss ja nicht warum man nicht refreshen soll, aber bei meiner lösung oben, wird halt einfach nix mehr angezeigt ausser "schluss jetzt! ich will nicht, dass diese seite öfter als 3 mal refreshed wird " ...

kannst natürlich auch per header("location ... auf ne andere seite verweisen. was du machst ist ja egal ...

 
pekka
27-11-2001, 11:15 
 
Mal andersrum: Wofür brauchst Du das Refresh-Verbot? Vielleicht hat Dir hier jemand eine Idee, wie sich dein Problem auch anders lösen lässt!

 
Metallica
27-11-2001, 12:16 
 
Leute, schon mal was von modal windows (window.showModalDialog) gehört.
da gibt's kein refreshen (weder shortcut noch symbol) und pfad wird auch keiner angezeigt.
funtzt aber leider nur im IE!

@pekka
das refresh-verbot muss leider wirklich so sein.

@schmalle
höchstwahrscheinlich werd ich's so machen wie du gemeint hast.


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:29 Uhr.