Benutzerinformationen einholen
speedy
- perl
Hallo Forum,
ich moechte gerne einige Sachen, die ich normalerweise per Javascript erledige auf die Serverseite legen. Natuerlich brauche ich dazu viele Informationen ueber den Benutzer. Dazu zwei fragen:
1. Gibt es irgendwo eine Zusammenstellung, die zeigt, was die einzelnen Browser (auch unbekanntere) in user_agent hinterlassen?
2. Kann man auch Informationen ueber den Browserzustand herausfinden (z.B. angezigte URL in der Adresszeile?)
Viele Gruesse und danke
speedy
ich moechte gerne einige Sachen, die ich normalerweise per Javascript erledige auf die Serverseite legen.
was willst du machen? mit welchen hilfmitteln (cgi, frameworks, ...)?
- Kann man auch Informationen ueber den Browserzustand herausfinden (z.B. angezigte URL in der Adresszeile?
prinzipell ja. das wie liegt an den hilfsmitteln, die du nutzt.
Hi,
was willst du machen? mit welchen hilfmitteln (cgi, frameworks, ...)?
vor allem Browser bzw. Clientsystemerkennung um Skriptsprachenunabhaengig speziell angepasste Seiten anzuzeigen. Das ganze soll moeglichst per CGI und/oder SSI mit Hilfe von PERL gemacht werden.
- Kann man auch Informationen ueber den Browserzustand herausfinden (z.B. angezigte URL in der Adresszeile?
prinzipell ja. das wie liegt an den hilfsmitteln, die du nutzt.
Wie gesagt nutze ich CGI, was gibt es denn noch fuer Hilfsmittel auf Serverseite? Waere schoen, wenn Du mir helfen kannst.
Viele Gruesse
speedy
um Skriptsprachenunabhaengig speziell angepasste Seiten anzuzeigen.
sehr lobenswert
Wie gesagt nutze ich CGI, was gibt es denn noch fuer Hilfsmittel auf Serverseite? Waere schoen, wenn Du mir helfen kannst.
cgis haben das problem, daß sie nicht sehr performant sind (da jedesmal ein neuer prozeß geforkt wird). das ist bei suchformularen sicherlich nicht das problem, aber bei deiner anwendung sicherlich sehr hinterlich. wenn du pech hast, kannst du 5 sec auf die seite warten (reiner text, nur durch den neuen prozeß) - bevor ich hier zurecht gewiesen werden: dieser wert ist natürlich serverabhängig. wenn du einen hochperformanten server hast, der sonst nichts macht und dir 100% der resourcen zur verfügung stellt, gilt dieser wert sicher nicht. auf jeden fall solltest du das vorher testen.
als alternativen stehen z.b. mod_perl (naja), jsp, php, coldfusion, usw. asp würde ich nicht unbedingt nutzen (nur iis, sicherheit?)
das problem an den ssi ist, daß es keine "richtigen" programmiersprachen sind. php4 ist zwar relativ mächtigt, aber für komplexe probleme krampf pur (leidvolle erfahrung). perl ist natürlich historisch hier überlegen.
interessant könnten hier java server pages sein. die vorteile von java sollten klar sein: professionelle tools, schnell, bekannte sprache (auch für die clients). probleme bekomst du damit nur, wenn du keinen eigenen server hast, da kaum ein provider jsp direkt fördert ... ums mal vorsichtig auszudürcken.
naja, vermutlich bist du jetzt genau so schlau wie vorher. letztendlich solltest du alles mal nutzen, denn nur so bekommst du ein feeling für die verschiedenen ansätze. falls du bis jetzt von keinen der sprachen erfahrung hast, würde ich mit php anfangen, da hier die lernkurve relativ flach ist. die konzepte hinter perl sind relativ komplex (reg. expr., usw.) falls du programmiererfahrung hast und dich etwas mit den unix-tools auskennst, ist aber auch perl nicht die welt.
ronny
Hi,
naja, PERL kann ich ja auch und setze es eben als CGI-Sprache ein. Ich wollte eben wissen, was man ueber die CGI-Schnittstelle alles ueber den Client rausbekommen kann, da mir Variantenprogrammierung mit Clientseitigen Skriptsprachen zum Hals raushaengt (wg. der Wackeligkeit).
Viele Gruesse
speedy
was man ueber die CGI-Schnittstelle alles ueber den Client rausbekommen kann
leider habe ich jetzt keine perl-doku hier. du solltest auf jeden fall mal >perldoc CGI< lesen. da gibt es auf jeden fall einen abschnitt, wie man die volle url erhält. über die restlichen daten stand da imho auch etwas. ansonsten scanne doch einfach die daten, die vom client kommen. *g*
mfg, ronny
Hi,
leider habe ich jetzt keine perl-doku hier. du solltest auf jeden fall mal >perldoc CGI< lesen. da gibt es auf jeden fall einen abschnitt, wie man die volle url erhält. über die restlichen daten stand da imho auch etwas. ansonsten scanne doch einfach die daten, die vom client kommen. *g*
danke erstmal. Mal schaun, was ich so alles rausbekomme.
LG
speedy
hallo,
schreib mal ein script, daß Dir '%ENV' ausgibt. Damit kriegst Du raus, Was der Browser so alles mitschickt, und der Web-Server Dir weiterreicht. Weil nicht alle Server geben den CGI-Programmen alle Infos weiter.
im prinzip ist alles, das mit 'HTTP_' anfängt interessant.
also:
#!/usr/bin/perl
print "Content-Type: text/plain\n\n";
foreach $key (sort keys %ENV)
{
print "$key = $ENV{$key}\n";
}
das wars auch schon.
bis dann
klaus
Hi klaus,
ja hab ich schon gemacht. Ich dacht nur, man koennte vielleicht irgendwie noch mehr herausfinden.
Viele Gruesse
speedy
Hi klaus,
ja hab ich schon gemacht. Ich dacht nur, man koennte vielleicht irgendwie noch mehr herausfinden.
Viele Gruesse
speedy
hi speedy,
naja, wir wollen doch nicht "big brother is watching you" spielen.
Im Ernst, ich denk mir, daß die Privatsphäre der User schon irgendwie geschützt bleiben soll, und mehr ist in dem Falle weniger (Sicherheit für den User nämlich). Oder würde es Dir gefallen, wenn jeder Server alles über Dich wüßte, das sammelt und vielleicht irgendjemanden weiterleitet. einem Anwalt vielleicht, oder einer Organisation, oder dem Staat, oder....
Wir hören tagtäglich von diversen Machenschaften,die allein dadurch möglich sind, daß elektronisch gespeicherte Informationen mißbraucht werden. Deshalb ist es mir lieber, die Server wissen nicht zu viel über die User, und wenn ja, dann sollte es dem User zumindestens klar sein, daß gerade Informationen über ihn gesammelt werden.
bis dann
klaus
Hi,
naja, wir wollen doch nicht "big brother is watching you" spielen.
brrrreemmmss. Neinnein, ich meinte ueber den Zustand des Client (z.B. welche Datei wird gerade in welchem Frame dargestellt oder was steht grad in der URL-Zeile), mehr nicht. Ich teile Deine Meinung ueber die Surferanonymitaet voll!
Viele Gruesse
speedy
hallo speedy,
Neinnein, ich meinte ueber den Zustand des Client (z.B. welche Datei wird gerade in
welchem Frame dargestellt oder was steht grad in der URL-Zeile), mehr nicht.
Ok, das geht leider auch nicht so einfach, weil HTTP ja ein statusloses Protokoll ist. Das heißt eben auch, daß der Server, nachdem er das Dokument irgendwie zusammengestoppelt hat und an den Client gesendet hat, die Verbindung zum Client trennt (oder trennt der Client?? weiß nicht, ist ja wurscht).
All jenes, das dann auf der client-seite passiert, kriegt der Server nicht mit.
Es sei denn, Du kramst per Javascript alle möglichen Informationen zusammen, Frame-Urls usw. (Inhalt der Adress-Zeile weiß ich nicht, glaub eher nicht), und schickst das alles dann wieder zum Server, per HTTP-Request z.B in einem Formular-Feld (versteckt??).
So könnte ich es mir vorstellen. Aber automatisch spielt's nicht.
Grüße
Klaus
Hi,
So könnte ich es mir vorstellen. Aber automatisch spielt's nicht.
tja, und dann waere ich wieder am Anfang, da ich ja das wackelige Clientscripting vermeiden wollte. Tja, kann man nix machen.
Viele Gruesse
speedy
Hi,
- Gibt es irgendwo eine Zusammenstellung, die zeigt, was die einzelnen Browser (auch unbekanntere) in user_agent hinterlassen?
möglicherweise. Aber vor allem die unbekannteren haben meist die Möglichkeit, den User-Agent-String zu verändern - was im Hinblick auf einige Webmaster, die den String auswerten und daraus den möglichen Zugang definieren auch fleißig genutzt wird...
So eine Auswertung hat also nur bedingt Sinn. Vermutlich reicht es aber, wenn Du Dich auf MSIE, Netscape und Opera beschränkst und den Rest als "sonstige" mit prinzipiell keinen Möglichkeiten (also reine Textbrowser) klassifizierst. Die Fehlerquote ist damit zwar größer null, aber sehr gering. Natürlich mußt Du dies abhängig von Deinem Benutzerkreis entscheiden - auf Amiga-Seiten dürften noch einige andere Clients wichtig sein.
- Kann man auch Informationen ueber den Browserzustand herausfinden (z.B. angezigte URL in der Adresszeile?)
Nicht wirklich. Du kannst aus den verschiedenen Informationen in %ENV beispielsweise die URL zusammenstückeln; dadurch weißt Du aber nicht, welche URL tatsächlich angezeigt wird (Framesets!). Weitere Informationen, so Du sie nicht clientseitig er- und im Request mit übermittelst, stehen Dir nicht zur Verfügung.
Cheatah