| |
ASP.NET, WebServices u. RemotingASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Tomahawk | Datum: 11.07.11 15:20 |
| Moin moin,
beim Anpassen einer klassischen Index.asp (zur Anmeldung am CMS) möchte ich noch ein Prüfung auf IP-Adresse einbauen. Dieser Block hat in diversen anderen Internetseiten keine Probleme verursacht. Es wird nur geschaut ob der Aufrufer Request.ServerVariables("Remote_Addr") auch in der Datenbank enthalten ist (also das CMS nutzen darf).
Es erscheint aber ein völlig anderes merkwürdiges: Der Benutzername, den ich über Request.Form("Username2") auslese, wird ohne die Umlaute eingelesen. Also wenn der Benutzer sich mit dem Benutzernamen "Möller" anmeldet, ließt die ASP-Seite "Mller" aus. Warum? Entferne ich diesen kleinen Block mit der Prüfung auf IP-Adresse, funzt es wieder einwandfrei. Es ist nur etws VB-Code, den ich hinzugefügt habe. Am restlich Konstrukt habe ich nix geändert.
Hat jemand schon einmal dieses Phänomen gehabt?
Die Zeit ist der größte Feind des Menschen. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Drapondur | Datum: 11.07.11 18:11 |
| Ist das auch wirklich ASP.NET oder klassisches ASP? | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Tomahawk | Datum: 11.07.11 21:16 |
| Es handelt sich um ASP, NICHT um ASP.NET! Das sagt die Dateiendung aber auch aus.
Die Zeit ist der größte Feind des Menschen. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Drapondur | Datum: 11.07.11 21:56 |
| Hi,
schlecht geschlafen heut' nacht?
1. Soll schonmal vorgekommen sein, dass Leute den Unterschied nicht kennen oder aus welchen Gründen auch immer das ".NET" weglassen.
2. ".NET" ist in diesem Zusammenhang keine Dateiendung.
3. Wenn für Dich die "Dateiendung" so eindeutig ist, warum postest Du Deine Frage in einem Forum für ASP.NET und wunderst Dich dann, dass man Dich fragt? | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Drapondur | Datum: 11.07.11 22:22 |
| Okay, ich geb's zu. Das steht sogar "klassischen Index.asp".
@Tomahawk: Entschuldige bitte, da hätte ich wohl genauer lesen sollen. Es war wohl ich, der schlecht geschlafen hat...
Ciao
D. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Tomahawk | Datum: 12.07.11 07:39 |
| :,-(
Alle hacken sie gleich auf mir rum! Ja, habe gut geschlafen...
...doch das Problem bleibt weiterhin bestehen. Der Link von DaveS bzgl. der verschwundenen Zeichen bezieht sich auf ASP.NET.
HILFE! Wie kann ein zusätzlicher Code-Block (Nur Datenbankverbindung zum MySQL herstellen, prüfen ob IP-Adresse enthalten ist und ggf. anderes Redirect durchführen) dafür sorgen dass in der ganzen ASP-Datei keine Sonderzeichen mehr aus dem Request.Form("Feldname") gelesen werden?!! Werde den Code-Block jetzt nach und nach verkleinern und hoffe dass damit die verursachende Zeile aufleuchtet.
Die Zeit ist der größte Feind des Menschen. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Franki | Datum: 15.07.11 01:05 |
| Hallo DaveS
Zitat: | | man sollte nicht erwarten das jemand hier
das uralte asp überhaupt kennt, | |
Das sehe ich nicht so, ich z.B. kenne ClassicASP seit es das gibt. Ich glaube auch nicht, dass es hier nur Leser gibt die erst mit dem Programmieren angefangen haben seit es .NET gibt.
Viele Leute sind halt umgestiegen von asp auf asp.Net, so wie von VB6 auf VB.Net und dafür gibt es hier auch einen Bereich im Forum und Classic VB ist soweit ich mich erinnere älter als asp.
Aber natürlich hast du recht, dieses Forum ist für ASP.NET, die Frage hätte eher in die Rubrik Allgemeine Fragen gepasst. Oder aber auch in den VbScript bereich, da ja ClassicASP meist damit geschrieben wird.
Gruß,
Frank | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Franki | Datum: 15.07.11 01:13 |
| Hallo,
ohne genaueren Code zu kennen, kann man da nicht viel sagen. In welcher Reihenfolge machst du das denn?
Was passiert wenn du z.B. schreibst?
<%
Benutzername = Request.Form("Username2")
Response.Write Benutzername & " "
Aufrufer = Request.ServerVariables("Remote_Addr") & " "
' Ist das noch OK bis hier hin?
' Wenn ja, dann hier die IP-Prüfung gegen die Datenbank machen
' Und dann zur Kontrolle:
Response.Write Benutzername & " "
Response.Write Aufrufer
%>
Ansonsten poste mal den "etwas VB-Code" den du hinzugefügt hast.
Da das ja hier das "falsche" Forum ist, gerne auch per PM damit wir hier nicht OT werden.
Gruß,
Frank | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Preisser | Datum: 15.07.11 02:26 |
| Hallo,
vielleicht fehlt auf der ASP-Seite ja das Codepage-Flag für den entsprechenden Zeichensatz. z.B
<%@ Codepage = 65001 %>
wäre für UTF-8. Diese Angabe gilt dann sowohl für das Parsen der eigentlichen ASP-Seite, als auch für die Kodierung/Dekodierung der Request- und Response-Strings.
Diese Kodierung sollte dann natürlich auch mit der Angabe im HTTP-Contenttype-Header bzw. HTML-Meta-Tag übereinstimmen (z.B. durch Response.ContentType = "text/html; charset=utf-8"). Die ASP-Datei sollte bei dem Beispiel dann auch als UTF-8 abgespeichert sein.
Außerdem sollten alle beteiligten Seiten den gleichen Zeichensatz verwenden, da der Browser beim Absenden eines Formulares immer den Zeichensatz der aktuellen Seite verwendet; nicht den der Seite, an die das Formular geschickt wird, da er diesen ja nicht wissen kann.
Beitrag wurde zuletzt am 15.07.11 um 02:29:44 editiert. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Franki | Datum: 15.07.11 02:35 |
| Hallo,
du hast natürlich recht mit deinen Ausführungen, aber ich glaube nicht, dass das Problem in dieser Richtung zu suchen ist.
Denn diese Angaben sind ja optional und wenn nicht vorhanden wird das ausgewertet was der Server (IIS) liefert. Das wird nicht unterschiedlich auf der Formularseite bzw. der Ergebnisseite sein.
Wir kennen den Code nicht von der IP Abfrage die zusätzlich eingefügt worden ist, ohne funktioniert es, mit nicht. Also scheint das Problem dort zu liegen.
Gruß,
Frank | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Tomahawk | Datum: 15.07.11 16:00 |
| Moin nochmal,
im HTML-Bereich der betroffenen ASP-Datei ist auch die Zeile enthalten, die bei allen ASP-Dateien enthalten ist:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> Die Zeit ist der größte Feind des Menschen. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Preisser | Datum: 15.07.11 16:48 |
| Hallo,
also ich kann mir jetzt nicht vorstellen, dass es was mit diesen 4 Zeilen zu tun hat, die du hinzugefügt hast, da die ja die strUsername-Variable gar nicht verwenden.
Wie genau liest du denn in beiden Fällen aus, welchen Inhalt die strUsername-Variable hat? Könntest du neben dem Inhalt auch mal in beiden Fällen die Länge ausgeben lassen, also Len(strUsername)?
Könnte es sein, dass dein Texteditor, mit dem du die Seite bearbeitet hast, ein UTF-8-BOM zur Datei hinzugefügt hat? Dann benutzt der IIS automatisch UTF-8 statt Windows-1252.
Versuch mal, die ursprüngliche Version der Datei (da, wo das mit den Umlauten noch funktioniert) mit Notepad++ zu öffnen und nur dort die Änderungen vorzunehmen.
Beitrag wurde zuletzt am 15.07.11 um 23:46:03 editiert. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Franki | Datum: 15.07.11 23:17 |
| Hallo,
und was ist den Kontrollausgaben die ich vorgeschlagen habe?
Was passiert bei Response.Write strUsername direkt nach dem Auslesen aus dem Forumularfeld und nachher bzw. zwischendurch.
Auch den SQl-String kannst du zur Kontrolle mal ausgben lassen per Response.Write bzw. das Ergebnis der DB Abfrage.
Was mich allerdings stutzig macht, ist das du da MM_ in deinem Code hast. Kann das sein, dass du gar nicht reines ASP schreibst sondern mit den verschlimmbesserten Macromedia Funktionen die Dreamweaver z.B. hat(te)?
Wenn ja schemiß die mal raus, kann gut sein, dass das Problem daher kommt. Nur eine Vermutung, ist zu lange her, wo ich mir die mal angesehen habe und relativ schnell wieder Abstand davon genommen habe weil es damit diverse Probleme gab und die keinen Mehrwert hatten (damals). Mit "normalem" Asp kann man auch auchen Redirect machen, schau dir auch mal Server.Transfer oder Server.Execute an.
Gruß,
Frank | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Tomahawk | Datum: 16.07.11 12:15 |
| Es wird schon beim Auslesen anstatt "Möller" => "Mller" in die Variable strUsername gespeichert.
Die Zeit ist der größte Feind des Menschen. | |
Re: ASP und die Sonderzeichen beim Request.Form("Feldname") | | | Autor: Preisser | Datum: 16.07.11 13:05 |
| Hallo,
hast du mal versucht, die ursprüngliche Datei mit Notepad++ zu editieren? Denn ich vermute, dass der von dir benutzte Editor fälschlicherweise ein UTF-8-BOM speichert, was dazu führt, dass der IIS die ASP-Datei als UTF-8 parst, womit die Umlaute falsch ausgelesen werden, wenn der Browser die Parameter der Seite als ISO-8859-1 sendet.
In Notepad++ kannst du oben im Menü "Kodierung" sehen, welche Kodierung die Seite hat. Dort sollte für deine Seite "ANSI" ausgewählt sein. Wenn nicht, klicke mal auf "Konvertiere nach ANSI" und speichere die Datei; und prüfe dann, ob es dann mit den Umlauten klappt.
Beitrag wurde zuletzt am 16.07.11 um 13:30:09 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|