ugrás a tartalomhoz

Ajax és a charset

1

fórum ajax-xal, prototype-pal

suhajdab · 2006. Júl. 13. (Cs), 12.31
Sziasztok!

Dolgozom egy fórumon. Oldalaim iso-8859-2 kódolással vannak, benne ajax küldi az üzenetet a php-nak. Ha jól tudom ezt a java vagy az prototype már utf-8-ba konvertálja. Ez szép és jó!

De mi történik a plussz jelekkel, illetve a textarea-ban leütött enterekkel?
Mindkét esetben a php oldalon már csak szüneteket kapok :(

Lehet ezt valahogy orvosolni? Nagyon fontos lenne, hogy a + jelek maradjanak, illetve, hogy a '\n'-ből <br> legyen...

Előre is köszönöm a segítséget!

Ui: Itt egy ajax chat amelyben látható a '+' eltünése!
2

talán

Anonymous · 2006. Júl. 13. (Cs), 12.52
urlencode?
3

Java-ban?

suhajdab · 2006. Júl. 13. (Cs), 12.57
Java-ban?

mert a php-ban már nincs meg sem a +, sem a \n
4

Inspirációként...

suhajdab · 2006. Júl. 13. (Cs), 14.46
A java ami küldi az üzenetet:
newMessage: function(event) {
		oThis=this;
		if ($('textArea_newMessage').value.length>1) {
			//alert($('textArea_newMessage').value);
			new Ajax.Request('forum_comm.php', 
				{ method: 'post', parameters: 'newMessage='+$F('textArea_newMessage')+'&activeForum='+this.activeForum,
				onComplete: function (request) {
					Effect.SlideUp($('div_newMessage'));
					$('textArea_newMessage').value='';
					$('div_newMessage_img').src='images/dropdown_down.gif';
					oThis.updateForum();
				}
				}
		);
		}
	}
és a php ami kapja:
mysql_real_escape_string(strip_tags($_POST['newMessage'])) 
és db-be rakja.
6

urlencode továbbra is

Anonymous · 2006. Júl. 14. (P), 11.38
én még nem értem, hogy miért nem nézed meg az ajaxkód által kapott request-et, abból minden kiderül. Az elküldött adatnak url encode-olva kell mennie, azaz a pl. space helyett "+" jel, á helyett %C3%A9, újsorból %0D%0A lesz (win alatt). Mivel itt a postolás nem a browserre van bízva, hanem "kézzel" történik, lehet, hogy nem kódolja el. Az elküldésnél próbáld úgy, hogy: encodeURI($F('textArea_newMessage'))

/l
7

kipróbáltam...

suhajdab · 2006. Júl. 14. (P), 11.49
'newMessage='+encodeURI($F('textArea_newMessage'))

ezt írtam be: 1 + 1 = 2

firebuggal megnéztem és a POST-ban ez ment: newMessage=1%20+%201%20=%202&activeForum=11&_=

sajna az adatbázisban azonban továbbra is ez jelent meg: 1 1 = 2
8

encodeURIComponent

Anonymous · 2006. Júl. 14. (P), 13.35
akkor utolsó esélyként encodeURI helyett encodeURIComponent, firebuggal kipróbáltam, elkódolja a pluszjelet
10

És tudja!! Már csak egy kérdésem volna.

suhajdab · 2006. Júl. 14. (P), 14.05
És igen! Ez az encodeURIComponent bejött!! Köszönöm very much!! :)


És arra van tippetek, hogy a textarea-ban ütött enterekkel mit kezdjek? nl2br nem jött be. Firebug-ban ennek látszik: %0A de nem tudom ezzel mihez is fogjak.
5

Senki sem tud megoldást???

suhajdab · 2006. Júl. 14. (P), 10.40
Ne vicceljetek már!
9

%2B = +

Gáldi Ákos · 2006. Júl. 14. (P), 13.50
Pedig az urlencode lenne a te barátod.

Próbáld ki a csetednél: 1%2B2%2B3=3%2B3
11

Köszönet!

suhajdab · 2006. Júl. 14. (P), 14.20
Köszönöm minden kedves hozzászólónak a segítséget!

A helyes megoldás a sorrendben volt!
Így működik:
mysql_real_escape_string(nl2br(strip_tags($_POST['newMessage'])))