php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.11.2008, 08:21  
Erfahrener Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 163
PHP-Kenntnisse:
Fortgeschritten
iXtends befindet sich auf einem aufstrebenden Ast
iXtends eine Nachricht über ICQ schicken iXtends eine Nachricht über Skype™ schicken
Standard Encoding PHP - AJAX

Hallo,
ich habe folgende Situation:
Ich habe ein Formular mit ein paar Daten, diese Daten sollen dann üer AJAX an ein PHP Skript gesendet werden und in eine DB geschrieben werden.
Danach sollen die Daten wieder aus der DB ausgelesen werden und dem Benutzer angezeigt werden.

Das Problem:
Wenn ich das Formular absende, kommt bei dem PHP-Skript nur gekrützel an.
In meiner DB stehen also Datensätze wie "äüöß". Meine Dateien sind alle utf8 codiert, in meiner HTML-Datei steht
PHP-Code:
<meta http-equiv="content-type" content="text/html; charset=UTF-8"
und in meiner PHP-Datei steht auch
PHP-Code:
header('Content-Type: text/html; charset=UTF-8'); 
Wenn ich mit den HTTP-Header angucke, den ich bei dem AJAX aufrufe absende, steht auch dass er utf-8 kodiert ist.
Code:
Antwort-Header
Date	Mon, 10 Nov 2008 07:07:55 GMT
Server	Apache/2.2.9 (Win32) PHP/5.2.6
X-Powered-By	PHP/5.2.6
Content-Length	5276
Keep-Alive	timeout=5, max=99
Connection	Keep-Alive
Content-Type	text/html; charset=utf-8
Anfrage-Header
Host	localhost
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language	de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding	gzip,deflate
Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive	300
Connection	keep-alive
X-Requested-With	XMLHttpRequest
Content-Type	application/x-www-form-urlencoded; charset=UTF-8
Referer	http://localhost/develop/tproject2/
Content-Length	39
Cookie	GUEST_LANGUAGE_ID=en_US; COOKIE_SUPPORT=true; LOGIN=74657374406c6966657261792e636f6d; SCREEN_NAME=7a4642374f783979475a672b2b6b374e535768564f513d3d; PHPSESSID=51e68889d462b70eff2077bdb1cabb3b
Wenn ich in den HTTP-Post gucke, den ich per AJAX übermittel, steht dieses gekrützel aber schon drinne:
Code:
params	title=male;name=äöüß;firstname=;company=;street=;zip=;city=;telephone_1=;telephone_2=;mobile=;fax=;mail_1=;mail_2=;
Wenn ich die Daten ausgebe, kommt natürlich auch dieses gekrützel. Auch wenn ich die Daten davor durch ein "utf8_encode()" schicke.

Woran liegt das? Es ist ja wirklich alles utf-8 codiert.
Zur info:
ich benutze zur Anzeige des Formulars sowie aller anderen Seiten die Template-Engine Smarty
Für die Ajax-Aufrufe und für Teile des Frontends das JavaScript Framework ExtJS.

Ich habe hier im Forum und bei Google schon gesucht aber bis jetzt nichts passendes gefunden. Ich würe über eure Hilfe echt sehr dankbar.

Vielen Dank
iXtends ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.11.2008, 08:40  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Schau doch mal nach was dein Browser bei Ein- und Ausgabe für einen Zeichensatz erkennt (im FF unter Ansicht -> Zeichenkodierung)
cycap ist offline  
Alt 10.11.2008, 08:43  
Erfahrener Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 163
PHP-Kenntnisse:
Fortgeschritten
iXtends befindet sich auf einem aufstrebenden Ast
iXtends eine Nachricht über ICQ schicken iXtends eine Nachricht über Skype™ schicken
Standard

Dort gibt er auch "Unicode (UTF-" aus

Ich versteh das echt nicht^^
iXtends ist offline  
Alt 10.11.2008, 08:48  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

das mal probiert? Javascript UTF-8
cycap ist offline  
Alt 10.11.2008, 08:56  
Erfahrener Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 163
PHP-Kenntnisse:
Fortgeschritten
iXtends befindet sich auf einem aufstrebenden Ast
iXtends eine Nachricht über ICQ schicken iXtends eine Nachricht über Skype™ schicken
Standard

Das habe ich auch gerade gefunden^^
Leider genau dasselbe Problem. Ich habe mit die JS Funktion mal genauer angesehen.
Ich übergebe meinen String, er kommt auch richtig an, der String, der aber zurückgegeben wird ist wieder so ein gekrützel "öäüß"
iXtends ist offline  
Alt 10.11.2008, 08:58  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Ich übergebe meinen String, er kommt auch richtig an, der String, der aber zurückgegeben wird ist wieder so ein gekrützel
Wie jetzt? An welcher Stelle is nun was?
cycap ist offline  
Alt 10.11.2008, 09:01  
Erfahrener Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 163
PHP-Kenntnisse:
Fortgeschritten
iXtends befindet sich auf einem aufstrebenden Ast
iXtends eine Nachricht über ICQ schicken iXtends eine Nachricht über Skype™ schicken
Standard

Ich gebe in mein Formular "öäüß" ein. Das ganze übergebe ich dann an die Funktion Urf8.encode(). Am Anfang der Funktion ist das auch noch der String "öäüß".
Dann wird in dieser Funktion der String utf-8 codiert. Zurück kommt aber "öäüß".

Würde es was helfen, wenn ich es mal hochlade und du dir das mal angucken kannst?
iXtends ist offline  
Alt 10.11.2008, 09:03  
Erfahrener Benutzer
 
Benutzerbild von byFd
 
Registriert seit: 06.11.2008
Beiträge: 154
byFd befindet sich auf einem aufstrebenden Ast
Standard

vorm schicken utf8_encode() und danach utf8_decode() müsste eigentlich funktionieren
byFd ist offline  
Alt 10.11.2008, 09:06  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Wenn du einen UTF-8-String nochmal UTF-8 kodierst, dann kann das auch nicht gehen.

Du musst dein Problem erstmal genauer analysieren und schauen an welcher Stelle genau dein String nicht mehr ok ist. Vielleicht verwendest du irgendwo eine Funktion die mit UTF-8 Strings nicht umgehen kann.

Zeig mir den genauen Punkt wo der String "kaputt" geht.
cycap ist offline  
Alt 10.11.2008, 09:16  
Erfahrener Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 163
PHP-Kenntnisse:
Fortgeschritten
iXtends befindet sich auf einem aufstrebenden Ast
iXtends eine Nachricht über ICQ schicken iXtends eine Nachricht über Skype™ schicken
Standard

ICH HABS

Also, das Problem ist etwas ganz einfaches
Die JS Methode Utf8.encode() macht den String nicht kaputt. Das was man zurückbekommt ist zwar ein gekrützel wie "öäüß" aber das ist richtig.
Gibt man z.B. auf der Demoseite den String "öäüß" ein, bekommt man genau dieses gekrützel.
Bei dem PHP script, das den Inhalt in die Datenbank schreiben soll, kommt der String dann wieder richtig an. Man muss dann nur vorm eintragen in die Datenbank ein utf8_decode machen und dann steht es auch in der Datenbank richtig.

Trotzdem danke für eure hilfe
iXtends ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ajax Formular problem mit eingabe themonk JavaScript, Ajax und mehr 2 01.11.2008 20:25
Mit Ajax DB checken Kein Genie JavaScript, Ajax und mehr 15 21.09.2008 13:20
PHP5 SOAP - Problem mit Arrays Calexico PHP-Fortgeschrittene 0 11.09.2008 12:06
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
[Erledigt] Wann lohnt sich AJAX Mikay Kun Off-Topic Diskussionen 6 23.07.2008 17:55
class.GMapper --> Mit Firefox Problem bei Ajax Plague PHP Tipps 2008 3 08.07.2008 10:31
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45
AJAX open mit POST und GET DonTermi HTML, Usability und Barrierefreiheit 5 04.10.2007 18:22
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 11 07.09.2007 15:44
Ajax bild.php aktualisieren M3g4Star HTML, Usability und Barrierefreiheit 3 09.03.2007 17:14
innerHTML funktioniert nicht bei AJAX request Plague HTML, Usability und Barrierefreiheit 1 21.12.2006 14:30
Ajax und Sonderzeichen? GSJLink HTML, Usability und Barrierefreiheit 1 11.11.2006 14:36
AJAX: Newsflash: How to? SvenLittkowski HTML, Usability und Barrierefreiheit 11 26.09.2006 23:14
Encoding Problem mit AJAX HTML, Usability und Barrierefreiheit 1 23.02.2006 14:10
[Erledigt] Selectbox per JS (Ajax) füllen/nachladen PHP Tipps 2006 8 23.01.2006 10:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php ajax header, ajax php header, php header ajax, php encode, ä php, ajax header php, ö php, php ä, àphp, php ajax, php ÃÂ, ajax php, php header encoding, ajax encode, header php ajax, php ajax encode, ajax ö, encode php, ajax php header encoding, phpcode ajax utf8

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum