Sie sind hier: Home > Typo3: tt_news - Fehler wenn keine news_id übergeben
Website durchsuchen

News mit RSS abonnieren

XML RSS 2.0 Feed
RSS ist ein elektronisches Nachrichtenformat, das es dem Nutzer ermöglicht, die Inhalte einer Webseite – oder Teile davon – als sogenannte RSS-Feeds zu abonnieren oder in andere Webseiten zu integrieren.
Mehr Infos: Öffnet einen internen Link im aktuellen Fensterhier klicken!

Typo3: tt_news - Fehler wenn keine news_id übergeben

Time 14.04.07 11:14 Uhr von Ingo Hans  Time Kategorie: Typo3  Time Kommentare (2)

Sucht man mit Google nach "keine news_id" erhält man zahlreiche Treffer. Schaut man sich die Seiten genauer an bemerkt man, dass diese Seiten normalerweise den SingleView der Erweiterung tt_news ausgeben sollten. Auf den Seiten findet man auch eine Vielzahl von Kommentaren unter dem Eintrag „keine news_id“ bzw. „no news_id given“. Die Kommentare beziehen sich aber nicht auf einen News-Beitrag sondern es werden alle Kommentare zu allen News-Beiträgen der gesamten Webseite ausgegeben. Genau wie auf meiner Webseite verwenden die meisten anderen die Erweiterungen „News“ (tt_news), „RealUrl“ (realurl) und „Modern Guestbook“ (ve_guestbook). „Modern Guestbook“ dient dabei als Kommentarsystem und „RealUrl“ liefert lesbare URLs. Das oben beschriebene Problem tritt auf wenn der Benutzer eine URL manuell im Browser ändert oder die URL falsch ist. Da keine Fehlerseite ausgegeben wird, erhält der Webmaster keine Rückmeldung über den Fehler. Sinnvollerweise sollte entweder eine Fehlermeldung erzeugt werden oder der Benutzer sollte auf die Listenansicht der Newsbeiträge umgeleitet werden. Ich habe auf dieser Webseite eine Fehlerbehandlung für diese Konstellation eingebaut.
Einbau einer eigenen Fehlerseite
Im Template der News-Detailseite habe ich folgenden Typoscript Code hinzugefügt: 
## keine News_ID übergeben
[TCEFORM.tt_globalVar = GP:tx_ttnews|tt_news <1
]
plugin.tx_veguestbook_pi1 =
plugin.tt_news._LOCAL_LANG.de.noNewsIdMsg = "Eigene Fehlermeldung"
[global]

Durch den Typoscript Code wird überprüft, ob die News_ID ungültig ist, wenn dem so ist wird das Gästebuch ausgeblendet und die Meldung bei "keine News_ID gefunden" geändert in eine beliebige Fehlernachricht.

Mit der Erweiterung "Page PHP Content" (page_php_content) kann PHP Code direkt auf eine Seite als Content-Element hinzugefügt werden.

<?php
$getParams = t3lib_div::_GET();
$news_id = intval($GLOBALS['TYPO3_DB']->quoteStr(
$getParams['tx_ttnews']['tt_news'],'tt_news'));

if ($news_id < 1){
$fileName = urldecode($_GET['tt_news']);
$logFile = 'fileadmin/log/error.txt';
$remoteHost = getEnv('HTTP_HOST').getEnv('REQUEST_URI');
$LogLine = $remoteHost."--".Date('[d/M/Y:H:i:s]');
$logfilehandle = fopen($logFile,'a');
fputs($logfilehandle,$LogLine,"\n");
@fclose($logfilehandle);
}
?>
Der PHP Code schreibt bei ungültiger News_ID einen Eintrag in eine Datei "error.txt".
Fazit - Was hat diese Änderung gebracht?
Mit Hilfe dieser kleinen Änderungen, erscheint bei falscher URL eine Fehlermeldung und es werden nicht mehr die gesamten Kommentare angezeigt. Außerdem wird der Fehler in einer Textdatei protokolliert, damit der Webmaster nachvollziehen kann in welcher Situation der Benutzer diese Fehlermeldung erhält. Dies könnte z.B. ganz nützlich sein, wenn sich die Adresse eines Newsbeitrages geändert hätte oder eine Suchmaschine einen falschen Verweis auf einen Newsbeitrag gespeichert hat.

Kommentare
  1. Authorema Time Donnerstag, 29-01-09 17:53 Uhr
    Das liegt an dem ? in der URL. Der Spider denkt, die URL wäre davon beendet und hört auf, weiter zu lesen.
    Deshalb sind ja dynamische URLs nicht suchmaschinenfreundlich.
  2. Authorlatschma Time Montag, 03-09-07 13:43 Uhr
    Aber das Problem tritt erst damit auf, dass Google die volle URL nicht angibt.

    Bei mir wird aus der Adresse

    http://www.domain.tld/Newsdetails.69+K5c456ceo8ex.0.html?&L=0

    eine

    http://www.domain.tld/Newsdetails.69+K5c456ceo8ex.0.html

    bei Google.

    Wenn jetzt jemand in Google einen Eintrag zu meiner Seite findet und auf das Link klickt, ist das eben ein falsches Link wo das Ende fehlt.

    Woran liegt das, dass Google die URL einfach hinten abschneidet?