Hallo!
Ich habe hier eine Download-Ext gebastelt.
Ist der User eingeloggt, darf er auf bestimmte Daten zugreifen. Das funktioniert auch wunderbar im FF aber nicht im IE und irgendwie kann ich das Problem nicht greifen :-(
Hierzu mal folgendes Schnipsel:
$get = t3lib_div::_GET('file');
$typ = t3lib_div::_GET('typ');
$content = 'Sie sind nicht richtig eingeloggt<br />und haben keinen Zugriff auf diese Datei!';
// eingeloggt?
$GLOBALS['TSFE']->fe_user->user = $GLOBALS['TSFE']->fe_user->fetchUserSession();
if (isset($GLOBALS['TSFE']->fe_user->user)) {
if ($GLOBALS['TSFE']->fe_user->user['usergroup'] != '') {
$gruppen = explode(',',$GLOBALS['TSFE']->fe_user->user['usergroup']);
if (in_array('3',$gruppen) || in_array('4',$gruppen)) {
// Mit der richtigen Gruppe eingeloggt...
[...]
}
// keine Rechte
return $this->pi_wrapInBaseClass($content);
Wenn der User sich auf der Webseite einloggt, dann kann er eine Excel-Liste runterladen (das funktioniert auch).
In der Excel-Liste sind Informationen und auch Links. Die Links zeigen auf die Domain nach dem Schema:
http://www.domain.de/start/file/pdf/hilfe/hilfe.pdf
Dann greift Mod-Rewrite ein und schreibt die Anfrage nach folgende URL um:
http://www.domain.de/index.php?id=544&file=file/pdf/hilfe/hilfe.pdf
Und auf der id 544 liegt nun mein Download-Script (s.o.)
Das überprüft, ob der User noch eingeloggt ist und bietet dann das File zum Download an.
Wie gesagt. Im FF kein Problem, aber im IE(ver.8 ) schon.
Hier verhält sich das ganze so, dass jedes 2. mal die Datei zum Download zur Verfügung steht und das andere mal ich die Meldung erhalte: "Sie sind nicht richtig einge....".
Eine Untersuchung von t3lib_userauth->fetchUserSession und t3lib_userauth->fetchUserSessionFromDB zeigte mir, dass die SQL-Where-Clause mit immer unterschiedlichen Session-IDs anfragt, obwohl in der Tabelle immer die gleiche ID steht (macht ja auch Sinn).
Und am meisten verwundert mich die Tatsache, dass das Problem nur im IE auftritt.
Habe ich bei meiner Abfrage nach dem "eingeloggt-sein" irgendetwas vergessen? Ist das Script soweit korrekt?
Irgendwelche Denkanstöße wären echt super.
Grüße
McGregor