Ich füge mittels des folgenden ASP-Codes eine Keyword (Access: Textfeld) und eine Description (Access: Memofeld) dazu in eine Access-DB ein. Dies funktioniert auch wunderbar, nur kann ich mit Netscape nur ein Wort als Keyword verwenden, währrenddessen ich mit IE beliebig viele Wörter als Keyword nutzen kann.
const break = "
"
Keyword=replace (Request( "keyword" ), chr(13)&chr(10), break)
Description=replace (Request( "description" ), chr(13)&chr(10), break)
'Insert keyword and description into glossary.mdb
Set DB=Server.CreateObject( "ADODB.Connection" )
DB.Open "dsn=glossary"
SQL="INSERT INTO keywords (keyword, description) VALUES ('" & Keyword & "','" & Description & "')"
Set rs=DB.Execute( SQL )
DB.close
%\>
Bei mehreren Wörtern als Keyword erhalte ich mit Netscape die Fehlermeldung:
HTTP Error 400
400 Bad Request
Due to malformed syntax, the request could not be understood by the server. The client should not repeat
the request without modifications.
Wer weiß, wie ich das beheben kann? Beim DELETE und UPDATE bekomme ich die gleiche Fehlermeldung bei mehreren Wörtern im Keyword-Feld, SELECT funktioniert jedoch.
IE tut Leerzeichen im URL automatisch umcodieren, Netscape tut das nicht, da gibt es die von dir genannte Fehlermeldung am Server (der keine Leerzeichen im URL verträgt).
Kann es sein, dass du die Felder selber an den URL anfügst und dann damit die ASP-Seite anforderst (beim normalen submitten eines Feldes/Forms über GET sollte Netscape das schon richtig codieren)?
Im URL werden andre Escape-Zeichen als im HTML-Code benötigt.
ASP bietet dafür die Methode Server.URLEncode
Ich habe das ausprobiert, doch leider kann ich auch mit der Server.URLEncode()-Methode mit Netscape immer noch keine Keywords löschen, die aus mehreren Wörtern bestehen. Ich bekomme weiterhin einen „HTTP Error 400“. An was könnte es noch liegen?
Ich habe das ausprobiert, doch leider kann ich auch mit der
Server.URLEncode()-Methode mit Netscape immer noch keine
Keywords löschen, die aus mehreren Wörtern bestehen. Ich
bekomme weiterhin einen „HTTP Error 400“. An was könnte es
noch liegen?
Schau mal was im HTML-Code liegt (ob er das korrekt codiert hat) und welchen URL er dann wegschickt, ob da noch Leerzeichen drinnen sind bzw. stell den URL mal hier rein.
Schau mal was im HTML-Code liegt (ob er das korrekt codiert
hat) und welchen URL er dann wegschickt, ob da noch
Leerzeichen drinnen sind
Mit Netscape komme ich ja gar nicht so weit, sobald ich auf „Löschen“ drücke, bekomme ich einen „HTTP Error 400“. IE erzeugt beim Keyword „test mit leerzeichen“ folgenden HTML-Code.
bzw. stell den URL mal hier rein.
Das geht nicht so einfach, da es für das Intranet der Firma ist, in der ich im Moment jobbe.
Unter http://www.fh-furtwangen.de/~schaett/ASP/ findest Du die für das Problem wichtigen Dateien. Von select.asp aus wird delete.asp augerufen, welchen dann den Begriff, der gelöscht werden soll an deleteDB.asp weitergibt, wo er dann in der DB gelöscht wird.
Du kannst die Files aber nur downloaden und anschauen, denn mein Server an der FH ist ein UNIX-Server ohne ASP-Unterstützung. Außerdem fehlen noch einige andere asp- und include-files.
Mit Netscape komme ich ja gar nicht so weit, sobald ich auf
„Löschen“ drücke, bekomme ich einen „HTTP Error 400“. IE
erzeugt beim Keyword „test mit leerzeichen“ folgenden
HTML-Code.
Hmmm, strange … :o) … tut mir leid, ich habs da jetzt ausprobiert und kann das Problem leider nicht nachvollziehen. Wenns einmal korrekt codiert im HTML-Code steht, dann müßte das hinhauen.
Das geht nicht so einfach, da es für das Intranet der Firma
ist, in der ich im Moment jobbe.
Ich meinte den URL der dann im Browser steht nachdem du auf abschicken drückst, also den URL den der Fehler produzierst.
Hmmm, strange … :o) … tut mir leid, ich habs da jetzt
ausprobiert und kann das Problem leider nicht nachvollziehen.
Wenns einmal korrekt codiert im HTML-Code steht, dann müßte
das hinhauen.
Also irgendwie scheint die Methode Server.URLEncode() mit Netscape nicht zu funktionieren, dort wird
erzeugt, währenddessen der IE es richtig macht und
schreibt.
Ich meinte den URL der dann im Browser steht nachdem du auf
abschicken drückst, also den URL den der Fehler produzierst.
Ach so, sorry. Meine URL verändert sich nie, da sich die ASP-Files in Frames befinden und außerdem noch die Navigation für das Intranet mittels Javascript dazugeladen wird.
Ich wollte mich noch mal bei Dir für Deine Hilfe bedanken. Ich habe heute morgen noch einmal mit Server.URLEncode und Server.HTMLEncode daran herumgebastelt, bis die Übergabe von mehreren Wörtern auch mit Netscape funktioniert hat!
Allerdings weiß ich nicht, woran es letzendlich lag, denn an dem Form-Statement, das die Parameter übergibt, habe ich nichts verändert. Aber egal, Hauptsache es läuft jetzt!