Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] Protokolleinträge: Formular-Fehler - unzulässige Auswahl (in exposed Filter)

Eingetragen von tetri999 (153)
am 14.10.2015 - 12:50 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo,

ich habe (mehrere) Taxonomy-Seiten, die über einen Taxonomy-Term-PageView dargestellt werden.
D.h. über den contextualFilter taxTermID werden die entsprechenden Inhalte (als Teaser) aufgelistet.
Außerdem beinhaltet dieser View 4 exposed Filter (als DropdownBoxen mit useAjax: ON), mit denen der User die Teaser nach anderen zugeordeten Taxonomien filtern kann.
Diese Filter fange ich mit MY_MODUL_form_alter(&$form, &$form_state, $form_id) ab, um bei den Dropdown-select-options die Anzahl der jeweils dazugehörigen Einträge dazuzuschreiben
- und die, bei denen keiner gefunden wird, schmeiß ich mit unset($form[$curFilter]['#options'][$tid]); raus.

Das Problem:
Bei unserer Live-Site laufen ständig Protokollmeldungen auf der Art:

[domain]/[taxonomy/term/tid]?tax1_tid=xx&tax2_tid=yy&tax3_tid=zz&tax4_tid=abc&=Apply
Typ: Formular
Schwere: Fehler
Nachricht: Unzulässige Auswahl xx im Element tax1_tid ...
Das sind dann genau solche Kombinationen, die durch meine Einschränkungen der select-options gar nicht mehr vorkommen.
Wie kommt das?
Es sieht so aus, als würden irgendwelche Robots auf diesen Seiten alle möglichen Kombinationen aus den select-options durchspielen - auch die gar nicht mehr vorhandenen.
Wie kann man das vermeiden - ich muß jeden Tag Dutzende von solchen Einträgen löschen!

mfG, Michael

‹ Eingabeformat in Drupal 7 aufklappbar wie in Drupal 6 [gelöst] Protokolleinträge: Formular-Fehler - unzulässige Auswahl (in exposed Filter) ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat:Es sieht so aus, als

Eingetragen von Ionit (1802)
am 14.10.2015 - 13:48 Uhr
Zitat:

Es sieht so aus, als würden irgendwelche Robots auf diesen Seiten alle möglichen Kombinationen aus den select-options durchspielen - auch die gar nicht mehr vorhandenen.

Genau - das sind meist Suchmaschinebots die die alten URLs aufrufen - diese aber nicht mehr vorhanden sind! Oder aber Bots von Scritkiddys die Sicherheitslücken suchen und die alles mögliche durchprobieren!

Zitat:

Wie kann man das vermeiden

Gar nicht! Wichtig dabei ist, dass die alten URLs einen 404 zurückgeben und dass Du einen canonical tag verwendest denn mit diesen zahlreichen select-options-Varianten erzeugt man praktisch unedlichen Dublicate-Content (mit den Pfaden die noch erreichbar sind).

Den Google-Bot kannst du aber über die Webmastertools anweisen bestimmte URLs nicht mehr aufzurufen - gegen alle anderen Bots kann man nichts machen!

Zitat:

- ich muß jeden Tag Dutzende von solchen Einträgen löschen!

Wieso musst Du die löschen? Drupal löscht die doch selbst nach einiger Zeit völlig automatisch!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aber das sind doch gar keine URLs,

Eingetragen von tetri999 (153)
am 14.10.2015 - 14:22 Uhr

die Taxonomy-Seite hat einen canonical-tag "[domain]/[seitentitel]" und einen shortlink "[domain]/[taxonomy/term/tid]" - ohne irgendwelche URL-Parameter,
und die select-options aus den Dropdown-Filtern verweisen über AJAX ja immer auf die gleiche Seite - es gibt also gar keine "alten" URLs, die page-not-found liefern könnten.
Diese Einträge in dblog mit den Filterkombinationen kommen in unserem System als Seiten-URLs gar nicht vor - oder hab ich da was falsch verstanden?

Den auto-Cron hab ich abgeschaltet, ich mache das alle paar Tage selber - aber die Protokolleinträge werden dabei nicht gelöscht, kann man das irgendwo einstellen?

Michael

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat:und die select-options

Eingetragen von Ionit (1802)
am 14.10.2015 - 15:13 Uhr
Zitat:

und die select-options aus den Dropdown-Filtern verweisen über AJAX ja immer auf die gleiche Seite

User ohne aktiviertes Javascript (die kein Ajax verwenden können) können die Filter trotzdem nutzen indem sie "Apply" klicken und auf die Ergebnissseite weitergeleitet werden und ohne, dass die Ergebnisse mit Ajax auf der selben Seite aktuallsiert werden. Die Bots klicken also den "Apply" Button (und zwar mit jeder möglichen Kombination der verschiedenen Selectlisten/Radio-Buttons) und werden dann (ohne Ajax) auch auf die Ergebnisseite geleitet.

Das sieht dann so aus wie bei Dir im Anfangsthread!

www.domain.com/[taxonomy/term/tid]?tax1_tid=xx&tax2_tid=yy&tax3_tid=zz&tax4_tid=abc&=Apply

Wenn jetzt irgendwann einmal was an den Filtern geändert wird, funktionieren diese alten (schon einmal gespiderten) Pfade nicht mehr und beim nächsten Botbesuch erzeugt das dann den Fehler im Log (und die Scriptkiddys kommen auch noch dazu - die alles mögliche versuchen um eine Sicherheitslücke zu finden und alles denkbar/undenkbare an diesen Pfaden ausprobieren).

  • Anmelden oder Registrieren um Kommentare zu schreiben

meine Lösung:

Eingetragen von tetri999 (153)
am 15.10.2015 - 13:23 Uhr

die Protokolleinträge waren ja keine 404er, sondern "Unzulässige Auswahl xx im Element tax1_tid ...".
Das kam wohl daher, daß ich die options, die keine Ergebnisse liefern würden - d.h. wo "LABEL (0)" stehen würde - mit unset($form[$curFilter]['#options'][$tid]); rausgeschmissen habe, so daß bei entsprechenden Kombinationen diese options gar nicht mehr da waren.
Jetzt habe ich sie stehen lassen und per jQuery mit jQuery("option:contains('(0)')" ).css( "display", "none" ); nur ausgeblendet - das scheint zu klappen, jedenfalls habe ich seitdem diese Protokolleinträge nicht mehr!

Oder gibt's gegen diese Methode Bedenken?

Michael

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 2 Tagen
  • Hey danke
    vor 1 Woche 3 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 2 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 2 Wochen 6 Tagen
  • In der entsprechenden View
    vor 2 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 6 Tagen
  • gelöst
    vor 5 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association