HTTP-Header bei fehlerhaft abgesendetem Formular
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
anfrage
aufwand
benutzer
bot
code
dubiosen quellen
einfacher tipp
formular
frage
http
interessieren
methode
parameter
post
setzen
sinn
sparen
url
verhindern
wissen
-
Liebe Bürgerinnen und Bürger ;)
mich würde interessieren, welchen HTTP-Statuscode man im Falle eines falsch eingegebenen Formulares sendet (könnte)?
Soll der allgemeine 400 - Bad Request gesendet werden? Oder was meint ihr?
Noch ein paar Infos: ich habe ein Formular, dass bei Fehleingaben (v.a. bei Spamverdacht) auf eine andere Seite umleitet. Da würde ich gerne einen Statuscode mitsenden, falls die Crawler von Suchmaschinen das Formular (versehentlich) absenden.
Edit: Ich habe gerade gesehen, dass es im HTML-Forum ist. Ich hatte eigentlich Internet Allgemein bei der Auswahlliste gewählt. Kann sein, dass dadurch, dass ich auf Erstellen im Unterforum HTML geklickt habe und dann erst ausgewählt habe. Tut mir Leid.
Wäre nett, wenn das jemand verschieben könnte. Passt ja nicht so ganz zu HTML/CSS/JavaScript. Danke schon einmal :)
Beitrag zuletzt geändert: 23.4.2012 14:17:14 von biolauri -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
biolauri schrieb:
Da würde ich gerne einen Statuscode mitsenden, falls die Crawler von Suchmaschinen das Formular (versehentlich) absenden.:)
Ein ordentlicher Crawler schickt keine Formulare ab! Crawler aus dubiosen Quellen, würden sich vermutlich nicht für Statuscodes interessieren. Den Aufwand kannst Du dir also sparen. -
fatfreddy schrieb:
Abgesehen davon: wird überhaupt irgendwo wegen einem falsch ausgefüllten Formular ein anderer HTTP-Statuscode geschickt?
Ein ordentlicher Crawler schickt keine Formulare ab! Crawler aus dubiosen Quellen, würden sich vermutlich nicht für Statuscodes interessieren. Den Aufwand kannst Du dir also sparen.
Bis jetzt habe ich jedenfalls sowas noch nie gesehen...
Der Sinn ist auch nicht wirklich erkennbar, da ja der Benutzer irgendwie auf seine Fehler reagieren soll und nicht der Browser. Und nur wegen Crawlern ist übertrieben, das hat fatfreddy aber schon beschrieben. -
fatfreddy schrieb:
Ein ordentlicher Crawler schickt keine Formulare ab! Crawler aus dubiosen Quellen, würden sich vermutlich nicht für Statuscodes interessieren. Den Aufwand kannst Du dir also sparen.
Der Googlebot sendet Formulare ab. Und ich würde ihn mal als sehr guten Bot klassifizieren.
Zu finden im deutschen Blog der Webmaster-Zentrale: http://googlewebmastercentral-de.blogspot.de/2008/04/crawling-von-html-formularen.html.
Außerdem kann sowas ja auch passieren, wenn man über einen Link mit URL-Parametern ein Formular 'abschickt'.
hackyourlife schrieb:
Abgesehen davon: wird überhaupt irgendwo wegen einem falsch ausgefüllten Formular ein anderer HTTP-Statuscode geschickt?
Bis jetzt habe ich jedenfalls sowas noch nie gesehen...
Der Sinn ist auch nicht wirklich erkennbar, da ja der Benutzer irgendwie auf seine Fehler reagieren soll und nicht der Browser. Und nur wegen Crawlern ist übertrieben, das hat fatfreddy aber schon beschrieben.
Ich weiß, dass es nirgendwo gemacht wird. Ich würde nur gerne trotzdem eure Meinung wissen ;)
Ob und wie ich es dann umsetze, ist ja dann meine Entscheidung. ^^
Außerdem erledigt das ein simples
.header("Status: 400 Bad Request");
Beitrag zuletzt geändert: 23.4.2012 14:39:17 von biolauri -
biolauri schrieb:
Einfacher Tipp um das zu verhindern: verwend die Methode
Der Googlebot sendet Formulare ab. Und ich würde ihn mal als sehr guten Bot klassifizieren.
Zu finden im deutschen Blog der Webmaster-Zentrale: http://googlewebmastercentral-de.blogspot.de/2008/04/crawling-von-html-formularen.html.
Außerdem kann sowas ja auch passieren, wenn man über einen Link mit URL-Parametern ein Formular 'abschickt'.
. Solche Anfragen können nicht so einfach ausversehen gesendet werden... und der Googlebot schickt anscheinend auch keine Posts...POST
-
hackyourlife schrieb:
Einfacher Tipp um das zu verhindern: verwend die Methode
. Solche Anfragen können nicht so einfach ausversehen gesendet werden... und der Googlebot schickt anscheinend auch keine Posts...POST
Leut dem Post nicht, genau. Danke.
Aber das macht nicht immer Sinn. Z.B. kann man von einer E-Mail aus (ausgenommen diese nervigen HTML-Mails) keine
-Anfragen senden. Dafür braucht es dann diePOST
-Methode.GET
-
biolauri schrieb:
Dafür kannst du in Mails ganz normal auf eine Seite zeigen die nur für Mails gedacht ist und per GET Parameter übergeben und auf der Seite prüfen ob alle Parameter richtig gesetzt wurden;
Aber das macht nicht immer Sinn. Z.B. kann man von einer E-Mail aus (ausgenommen diese nervigen HTML-Mails) keine
-Anfragen senden. Dafür braucht es dann diePOST
-Methode.GET
wenn ja: normale Seite
wenn nein: Weiterleitung auf die Startseite, sodass gar nicht auffällt, dass hier eigentlich eine Datenauswertung stattfindet.
Dabei brauchst du nur mit
prüfen ob alle Parameter vorhanden sind. Der Googlebot (oder sonst irgend ein Bot) muss dann wissen, welche Parameter er überhaupt setzen muss, was er vermutlich aber nicht wissen wird...isset()
-
hackyourlife schrieb:
Dafür kannst du in Mails ganz normal auf eine Seite zeigen die nur für Mails gedacht ist und per GET Parameter übergeben und auf der Seite prüfen ob alle Parameter richtig gesetzt wurden;
wenn ja: normale Seite
wenn nein: Weiterleitung auf die Startseite, sodass gar nicht auffällt, dass hier eigentlich eine Datenauswertung stattfindet.
Dabei brauchst du nur mit
prüfen ob alle Parameter vorhanden sind. Der Googlebot (oder sonst irgend ein Bot) muss dann wissen, welche Parameter er überhaupt setzen muss, was er vermutlich aber nicht wissen wird...isset()
Das würde so gehen. Aber die Frage ist dann, ob eine zusätzliche Seite nicht mehr Aufwand ist, als eine Zeile, die den Statuscode auswirft, mit aufzunehmen. ;-D
Mir gehts bei der Frage auch nicht, was es für Alternativen gibt. Da gibt es ja viele. Z.B. ist es sehr leicht, Bots zwar das Formular indexieren zu lassen, ohne dabei es per
abzuschicken, indem man in die robots.txt folgende Zeile schreibt:GET
Wichtig hierbei ist das Fragezeichen am Ende. Dadurch wird der Query-Teil der Anfrage nicht mehr erlaubt, wodurch der Bot das Formular nicht mehr abschicken darf. Das unausgefüllte Formular jedoch ist weiterhin erlaubt.User-agent: * Disallow: /formular?
Bei der robots.txt wird ja nicht exakt der String verglichen, sondern immer nur ab dem Anfang.
Bei der Frage ging es mir eher ums Prinzip.
Edit: Will sich jetzt niemand mehr dazu äußern? Ich würde mich gerne noch über weitere Meinungen dazu erfreuen!
Beitrag zuletzt geändert: 25.4.2012 9:53:52 von biolauri -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage