mmofacts.com

JavaScript Error

gepostet vor 15 Jahre, 8 Monate von Kapsonfire

Folgender Text führt zu einem Fehler in meinem Code

jetzt bin ich zufrieden, hab drei vicher getötet und aus dem brunnen getrunken, das reicht mir erstmal^^ schön zu sehen was man so schönes machen kann... sag mal findest du die karte sehr klein? es kommt ja noch was dazu, aber so, wie viel ist das so was ich jetzt so habe?

Grund: IE: URI hat ungültige Verschlüsselung

Firefox 3.06: malformed URI sequence

Auslesen: unescape(decodeURIComponent(inhalt))

Eintrag in die Datenbank wird maskiert mit: escape(encodeURIComponent(inhalt))

gepostet vor 15 Jahre, 8 Monate von TheUndeadable

Nimm mal die Umlaute und die ^^ aus dem Text raus und probiere es aus. Sollte es immer noch auftauchen, so überprüfe mal mit einem HTTP-Sniffer den versandten Text.

BTW: Viecher (nicht vicher)

gepostet vor 15 Jahre, 8 Monate von Kapsonfire

der text ist nich von mir verfasst

nachtrag die umlaute werden durch encodeURI weggeparsed und die ^^ öäääüü kann ich anderen posts auch benutzen

aber ich habe zwei funktionen

JavaScript:

 function schreien() {
var http = null;
if (window.XMLHttpRequest) {
   http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
   http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
   inhalt=document.getElementById("chatform").value;
 
 
   http.open("POST", "schreien.php", true);
   
   http.onreadystatechange = ausgeben;
   http.setRequestHeader(
      "Content-Type",
      "application/x-www-form-urlencoded");
   http.send("a=" + escape(encodeURIComponent(inhalt)));
   document.getElementById("chatform").value="";
}
function ausgeben() {
   if (http.readyState == 4) {
     chatladen();
     
   }
}
}

und

JavaScript:

 function worldsay() {
var http = null;
if (window.XMLHttpRequest) {
   http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
   http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (http != null) {
   inhalt=document.getElementById("chatform").value;
 
 
   http.open("POST", "worldsay.php", true);
   
   http.onreadystatechange = ausgeben;
   http.setRequestHeader(
      "Content-Type",
      "application/x-www-form-urlencoded");
   http.send("a=" + escape(encodeURIComponent(inhalt)));
   document.getElementById("chatform").value="";
}
function ausgeben() {
   if (http.readyState == 4) {
     chatladen();
     
   }
}
}

bin ich dämlich oder übersehe ich was

weil mit function worldsay geht es

und der php quelltext ist nahezu der gleiche bis auf das der worldsay nur eine if drin hat und keine weitere veränderung des strings

per schreien eingetragener text: Code:

jetzt%20bin%20ich%20zufrieden%2C%20hab%20drei%20vicher%20get%C3%B6tet%20und%20aus%20dem%20brunnen%20getrunken%2C%20das%20reicht%20mir%20erstmal%5E%5E%20sch%C3%B6n%20zu%20sehen%20was%20man%20so%20sch%C3%B6nes%20machen%20kann...%20sag%20mal%20findest%20du%20die%20karte%20sehr%20klein%3F%20es%20kommt%20ja%20noch%20was%20dazu%2C%20aber%20so%2C%20wie%20viel%20ist%20das%20so%20was%20ich%20jetzt%20so%20habe%3F

 per worldsay eingetragen

Code:

jetzt%20bin%20ich%20zufrieden%2C%20hab%20drei%20vicher%20get%C3%B6tet%20und%20aus%20dem%20brunnen%20getrunken%2C%20das%20reicht%20mir%20erstmal%5E%5E%20sch%C3%B6n%20zu%20sehen%20was%20man%20so%20sch%C3%B6nes%20machen%20kann...%20sag%20mal%20findest%20du%20die%20karte%20sehr%20klein%3F%20es%20kommt%20ja%20noch%20was%20dazu%2C%20aber%20so%2C%20wie%20viel%20ist%20das%20so%20was%20ich%20jetzt%20so%20habe%3F
gepostet vor 15 Jahre, 8 Monate von Kapsonfire

fehler lokalisiert

wordwrap($chat[text], 200, "\n",true) -> fehler

hab \n mit %20 ausgetauscht und es geht^^

gepostet vor 15 Jahre, 8 Monate von Kallisti

Zeilenumbruch und Leertaste sind ja auch fast dasselbe.

gepostet vor 15 Jahre, 8 Monate von Kapsonfire

es sollte nur verhindern, dass jemand den chat zuspammt indem er ein wort mit 5000 zeichen länge macht^^

gepostet vor 15 Jahre, 8 Monate von Kallisti

Wuerd ich aber eher serverseitig filtern. :P

Auf diese Diskussion antworten