php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.12.2005, 11:28  
Gast
 
Beiträge: n/a
Standard [Erledigt] Problem mit Sonderzeichen PHP -> MySQL -> HTML

Hi,

bastel gerade an einem Weblog. Die Daten gebe ich in einem Formular ein und speichere sie dann in MySQL.
Anschließend gebe ich sie dann in HTML aus oder(!) möchte sie editieren. Dazu werden sie dann in einem Formular ausgegeben.

Problem:
- Wenn ich Daten speicher mache ich das über htmlentities(), dabei kann ich schon mal keine Links einfügen
- Die Daten, die ich über htmlentities speicher werden zwar als HTML hübsch ausgegeben, wenn ich aber alles zum editieren öffne, sind dort die
... und die werden nach dem speichern ja automatisch wieder mit htmlentities() gespeichert, sodass ich beim Editieren immer die
's wegmachen müsste, damit mein Script diese nicht automatisch umwandeln kann.

Lösungsansatz:
- Hatte schon versucht auf htmlentities ganz zu verzichten. Dann könnte ich so ordentlich HTML-Code posten, was mir nichts ausmacht. Problem dann: Sonderzeichen (genauer: dt. Sonderzeichen, wie zB: ä,ö,ü,ß...) werden von MySQL als "?" dargestellt.

Herzlichen Dank,
Malte
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.12.2005, 11:40  
Gast
 
Beiträge: n/a
Standard

Du musst unterscheiden zwischen Darstellung und Datenhaltung. Die Datenhaltung enthält die reinen unformatierten Daten. Die werden nur bei der Ausgabe verschönert.

Was MySQL darstellt ist ja egal, solange die Oberfläche funktioniert, mit der gearbeitet wird. Du könntest dir ja eventuell Gedanken über den von MySQL verwendeten Zeichensatz machen, der sich konfigurieren lässt. Funktioniert denn ohne htmlentities die Ausgabe im Browser?
 
Alt 07.12.2005, 11:55  
Gast
 
Beiträge: n/a
Standard

Den MySQL Zeichensatz habe ich auch schon verändert; erstauf latin1_general und jetzt auch mal auf german - hilft alles nix.
Ohne htmlentities gibt er für Umlaute ein ? aus (das als solches schon mysql so gespeichert wird)... wenn ich es als ü speicher wird es richtig ausgegeben...

ohne htmlentities kann ich das natürlich alles schoen selber machen... alle Zeilenumbrüche etc... aber meiner Meinung nach muss ich zuviel selber machen... denn wenn ich meinentwegen

Code:
<html>
<body>
Hier gibts eine Überraschung
</body></html>
schreibe, wird das ja auch korrekt vom Browser angezeigt (also nicht "?berraschung" oder "&Uuml;berraschun", sondern "Überraschung"). Muss ja irgendwie an MySQL liegen, bzw. an der Übetragung zwischen dem Script und MySQL, oder?
 
Alt 07.12.2005, 12:06  
Gast
 
Beiträge: n/a
Standard

Mit welchem Medium guckst du denn in die Datenbank (Browser, Konsole, ...)?
Welchen Zeichensatz nutzt du bei der Eintragung von Daten über den Browser?
Welchen String liefert PHP (mach ein echo und siehe HTML-Quelltext) bei Feldern mit Sonderzeichen?

aöü sind in den latin1-Kodierungen vorhanden.
 
Alt 07.12.2005, 12:19  
Gast
 
Beiträge: n/a
Standard

- Medium: phpmyadmin
- Zeichensatz beim Eintrag: ... hmmm keinen speziellen? sollte ich einen angeben?
- wenn ich htmlentities mache steht im source &...uml; | ohne htmlentities steht nur das "?" dort, das, wie gesagt auch schon in der Tabelle so gespeichert wurde.

und wenn die Umlaute da schon alle drinne sind, muss an meiner dummheit liegen, (bzw. vllt. am SQL-statement??)...
Habe es einfach mal getestet... das SQL Statement, das an MySQL übergeben wird, sieht folgendermaßen aus (habe mir es einfach per echo ausgeben lassen, bevor es gespeichert wird):
Code:
INSERT INTO WEBLOG SET TITLE='Testwürstchen',CONT='Hier steht der Text... ich bin ein Nasenbär (ein Zeilenumbruch) und Ende',DATETIME=NOW()
und wenn das statement richtig ist (also umlaute so dargestellt werden...) müsste es doch eigentlich gehen...
selbst im source wird der umlaut als "ü" angezeigt, nicht als "&uuml;"...
 
Alt 07.12.2005, 12:25  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Saraneus
Welchen String liefert PHP (mach ein echo und siehe HTML-Quelltext) bei Feldern mit Sonderzeichen?
Damit meine ich, dass du ausgeben sollst, was der Browser übergeben hat, wenn du das Eintragungsformular abgeschickt hast, z.B. mit print_r($_POST).

Insert-Statements sehen so aus:

Code:
INSERT INTO tabelle (spalte1, spalte2, spalteN) VALUES('inhalt_fuer_spalte1', 'inhalt_fuer_spalte2', 'inhalt_fuer_spalteN')
Dein Statement würde nur in MySQL funktionieren, entspricht aber nicht dem Standard.
 
Alt 07.12.2005, 12:31  
Gast
 
Beiträge: n/a
Standard

browserübergabe:

Code:
Array ( [TITLE] => Neuer Eintragswürtschen [CONT] => Hallo du Würstchen mit ü [ACTION] => create )
Danke @ statement (scheiss Markt+Technik MySQL-Buch -> da steht's so drinne )
 
Alt 07.12.2005, 12:40  
Gast
 
Beiträge: n/a
Standard

Amüsanter Arrayinhalt

Jetzt steht fest, der Browser überträgt die Sonderzeichen korrekt. Hast du Zugriff auf eine Konsole, in der du per mysql-Client den Inhalt der Datenbank einsehen kannst? phpMyAdmin ist auch nur eine HTML-Site, deshalb gibt's da denselben Effekt wie auf deiner Website.

Ich vermute, die Daten werden richtig gespeichert. Dann lies mal per PHP aus und mach ein print_r() mit dem von mysql_fetch_row zurückgeliefertem Ergebnis. Bitte wieder hier posten.

Zitat:
Zitat von malte_w
Danke @ statement (scheibenkleister Markt+Technik MySQL-Buch -> da steht's so drinne )
Sicher beim Insert? Denn für Update wäre deine Syntax die richtige.
 
Alt 07.12.2005, 13:31  
Gast
 
Beiträge: n/a
Standard

Code:
Array
(
    [0] => 1
    [1] => ?berraschungsw?rstchen
    [2] => Hier kommt das ?berraschungsw?rstchen
    [3] => 2005-12-07 13:22:12
    [4] => 0
)
Das ist direkt aus dem source kopiert .

und eben habe ich mal über kommandozeile die abfrage gemacht und da zeigt er mich auch die ?-Zeichen an, anstatt der Umlaute


PS: danke für deine mühe
 
Alt 07.12.2005, 13:34  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

na ja das zeigt ja schon das sie im Code (also nichts mit MySQL) nicht richtig sind.
Code:
Array
(
    [0] => 1
    [1] => ?berraschungsw?rstchen
    [2] => Hier kommt das ?berraschungsw?rstchen
    [3] => 2005-12-07 13:22:12
    [4] => 0
)
daher muss es an PHP liegen..

oder ist das die abfrage von MySQL ?! fals ja sry
__________________
Wie man Fragen richtig stellt
dsmcg 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
MySQL Problem mit INSERT-Queries Arno Nühm Datenbanken 10 07.04.2006 16:46
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
[Erledigt] Problem beim verbindungsaufbau zum Mysql Server Datenbanken 9 27.10.2005 11:27
MySQL Problem b++ PHP Tipps 2005-2 3 20.09.2005 17:53
MySQL &amp;amp; PHP: Problem mit Password() Datenbanken 10 19.09.2005 11:00
mysql daten ohne html formatierung ausgeben wizzardxx PHP Tipps 2005 2 28.03.2005 00:56
MYSQL root login und logging Problem Datenbanken 2 16.03.2005 08:41
Auslesen mySQL tabelle und ausgabe als html Calli PHP Tipps 2004-2 3 21.12.2004 16:51
mit mysql und php eine datenbank erstellen? Großes Problem PHP Tipps 2004-2 1 16.12.2004 14:53
HTML, PHP, MySQL, Flash, Photoshop in Darmstadt Beitragsarchiv 0 17.11.2004 20:54
[Erledigt] Problem mit PHP und MYSQL Datenbanken 6 01.08.2004 05:59
MySql und Php (Probleme mit Sonderzeichen) pit62 PHP-Fortgeschrittene 4 15.06.2004 04:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2007/34547-erledigt-problem-mit-sonderzeichen-php-mysql-html.html, php &gt, php mysql sonderzeichen problem, mysql html tag issues, problem mit sonderzeichen mysql php htmlentities, mysql insert htmlentities, mysql insert statement umlaute, &gt; html, mysqli insert %uuml problem, php &gt; zu html, \--&gt;\ html fehler, php formular htmlentities mysql, mysql passwort mit sonderzeichen, mysql insert sonderzeichen, mysql ausgabe umlaute korrekte darstellung, sonderzeichen php &gt, sonderzeichen, sonderzeichen mysql insert, htmlentities wenn bereits umlaute umgewandelt, htmlentities umlaute falsch

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.