[TYPO3-german] Evtl. Fehler bei der Abfrage des Useragents in TYPO3

Christian Wolff Chris at connye.com
Sun Feb 18 02:47:37 CET 2007


Hallo Michael,
mit der Firefox extension "Modify Headers" gerade mal meinen user-agent
string aus dem firefox genommen.
und bei mir gab es keine fehler getestet auf einer seite mit typo3 4.0.4
und einer mit 3.8
allerdings verwenden beide seiten keine conditions die auf browser matchen.
also könnte es noch sein das dort ein fehler in der condition schlummern.

wenn deine gestylte version des feeds ebenfalls auf deiner typo3 seite ist
kannst du das doch direct über typo3 machen. (und kannst dir das zusätzliche auslesen
mit php sparen)

gruss chris



Am Sat, 17 Feb 2007 14:25:12 +0100 hat Michael Gnessner <typo at epoche-napoleon.net> geschrieben:

> Hallo zusammen,
>
> Ich hoffe, daß ich den nachfolgenden Sachverhalt verständlich übermitteln kann, weil es hier wohl fundiertere um PHP- und T3-Core-Kenntnisse geht:
>
> Ich habe mit tt_news einen RSS-Feed erzeugt. Die erzeugte XML-Datei ist auch problemlos über Firefox, IE 6&7 aufrufbar, ebenso konnte ich den Feed in die Google-Startseite einbinden.
>
> Zusätzlich wollte ich den Feed aber nun auch über PHP auslesen und in eine "gestylte" Form bringen lassen. Das notwendige Script wurde mir durch einen befreundeten PHP-Programmierer freundlicherweise zur Verfügung gestellt und sollte in vorhandene HTML-Seiten, die nicht mit TYPO3 produziert wurden, eingebunden werden.
>
> Dabei trat jedoch folgende Fehlermeldung auf:
>
> -- SCHNIPP START --
>
> Warning: stripos() expects parameter 1 to be string, NULL given in /usr/www/users/epocheh/typo3conf/ext/dam/compat/stripos.php on line 38
>
> Warning: stripos() expects parameter 1 to be string, NULL given in /usr/www/users/epocheh/typo3conf/ext/dam/compat/stripos.php on line 38
>
> Warning: stripos() expects parameter 1 to be string, NULL given in usr/www/users/epocheh/typo3conf/ext/dam/compat/stripos.php on line 38
>
> Warning: stripos() expects parameter 1 to be string, NULL given in /usr/www/users/epocheh/typo3conf/ext/dam/compat/stripos.php on line 38
>
> Warning: Cannot modify header information - headers already sent by (output started at /usr/www/users/epocheh/typo3conf/ext/dam/compat/stripos.php:38) in /usr/www/users/epocheh/typo3src-4.0/typo3/sysext/cms/tslib/class.tslib_fe.p hp on line 2853
>
> -- SCHNIPP ENDE --
>
> Diese Fehlermeldung trat nicht mehr auf, wenn ich mit dem selben Script die per Browser erzeugte und gespeicherte XML-Datei einlesen ließ, oder von einer anderen Website aus einen Feed eingebunden habe.
>
> Durch den Programmierer des Scripts wurden weitere "Untersuchungen" durchgeführt und er kam zu folgenden Ergebnis:
>
> -- SCHNIPP START --
>
> Ich habe das Problem nun gefunden. Das Problem tritt nicht nur beim Einlesen des Feeds auf, sondern beim Einlesen aller Seiten auf Epoche-Napoleon.
>
> Das Problem ist, dass PHP einen User-Agent sendet, der offenbar nicht korrekt von TYPO3 interpretiert wird. Der User-Agent dient zur Identifizierung der Software, die Daten von einer Site abfruft. Meistens sind das Web-Browser, die über den User-Agent mitteilen, dass sie z.B.
>
> Firefox oder Opera sind.
>
> Meine Vermutung ist nun, dass TYPO3 den User-Agent parst und dabei ein bestimmtes Format erwartet. Beim Zerlegen des User-Agents von PHP durch TYPO3 in seine Einzelteile bleiben dann Teile uninitialisiert (was dem Wert NULL entspricht). Wenn nun diese NULL-Werte einer Funktion wie stripos() übergeben werden (was offensichtlich passiert), dann beschwert sich diese Funktion darüber mit einer Warnmeldung.
>
> Um meine Aussagen noch etwas zu präzisieren: Der User-Agent wird von PHP offenbar *gar nicht* gesendet. Anhand eines Testscripts habe ich herausgefunden, dass allein die Abfrage des User-Agents in PHP schon einen NULL-Wert liefert, wenn man die Datei über PHP einliest. Die Entwickler von TYPO3 sind anscheinend einfach davon ausgegangen, dass der User-Agent immer vorhanden ist und haben den Fall, dass er fehlen könnte, nicht berücksichtigt. Da es möglich ist, den User-Agent auch bei einem normalen Browser nicht zu senden, ist das schon etwas schlampig.
>
> Andererseits handelt es sich bei den Meldungen auch nur um Warnungen und und der Ablauf des Scripts dürfte dadurch nicht beeinträchtigt werden.
>
> -- SCHNIPP ENDE --
>
> Nach Deaktivierung der PHP-Fehlermeldungen - was sicherlich keine wirklich Lösung sein dürfte - läuft das Script nun wie gewünscht.
>
> Wenn ich die Fehleranalyse richtig verstanden habe, wird in TYPO3 der Useragent von PHP - welcher anscheinend nicht mitgesendet wird - mit einem NULL-Wert quittiert. Dies führt dann zu den oben erzeugten Warnmeldungen und verhindert ein fehlerfreies Ausführen des Scripts?
>
> Nun bin ich - wie gesagt kein Programmierer oder Entwickler - nicht ganz sicher, ob es sich um einen Fehler oder um ein Feature von TYPO3 handelt. Würde mich über eine Rückmeldung aus dem Liste freuen.
>
> Beste Grüße
>
>--
> Michael Gnessner
> Email: michael at epoche-napoleon.net
> WEB: http://www.epoche-napoleon.net <http://www.epoche-napoleon.net/>
>_______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german



-- 
christian wolff - multimedia producer
telefon: (030) 789 134 99
handy: 0179 49 44 758
email: chris at connye.com
adresse: schenkendorfstr. 6 - 10965 berlin


More information about the TYPO3-german mailing list