« Project home page
my little forum
Log in
Register
Search:
Back to the entry by Auge
Post reply
Reply to the message by
Auge
Name:
E-mail:
(optional, won't be displayed directly)
Leave this field empty:
Homepage:
(optional)
Leave this field empty:
Location:
(optional)
Remember me (cookie)
Category:
General
Project organisation
Technics
Design/Themes
Features
Development
Todo
Bugs
German / Deutsch
Spanish / Español
French / Français
Accessibility/UX
Subject:
Formatting help
skip to input
format text bold
[b]bold text[/b]
format text italic
[i]italic text[/i]
insert hyperlink
[link=http://example.com/]link text[/link] / [link]http://example.com/[/link]
set text color
[color=#rgb]colored text[/color]
font size
[size=small]small text[/size]
[size=large]large text[/size]
insert list
[list][*]list item[/list]
insert image
[img]http://example.com/image.jpg[/img]
left: [img=left]http://example.com/image.jpg[/img]
right: [img=right]http://example.com/image.jpg[/img]
thumbnail: [img=thumbnail]http://example.com/image.jpg[/img]
thumbnail left: [img=thumbnail-left]http://example.com/image.jpg[/img]
thumbnail right: [img=thumbnail-right]http://example.com/image.jpg[/img]
upload image
upload image ...
insert TeX code
[tex]TeX code[/tex]
insert code
[inlinecode]code[/inlinecode]
[code]code[/code]
[code=css]code[/code]
[code=html]code[/code]
[code=javascript]code[/code]
[code=perl]code[/code]
[code=php]code[/code]
[code=sql]code[/code]
[code=xml]code[/code]
:-)
;-)
:-P
:-D
:-|
:-(
:yes:
:no:
:ok:
:lol:
:lol2:
:lol3:
:cool:
:surprised:
:angry:
:crying:
:waving:
:confused:
:lookaround:
:clap:
:love:
:tick:
Message:
> Hallo Auge, > > > Ich sehe es jetzt so: > > > > Bei der alten PHP-Version (hier 5.2) hat htmlspecialchars() in der Datenbank die Zeichenkodierung vorgefunden, für die es selbst auch voreingestellt ist. Die Umkodierung lief glatt. > > > > Bei der neuen PHP-Version (hier 5.5) wird voreingestellt UTF-8 erwartet, was zu stillem Abbruch bei der ganzen ISO-8859-1-Textumsetzung des Feldes führt. > > Ja, sobald ein nicht zur Kodierung passendes Zeichen auftaucht, bricht die Funktion ab. > > > Offenbar werden die Daten unterschiedlich in der Datenbank abgelegt. Bei PHP 5.2 (ich schreibe vorsichtshalber nicht "mit PHP 5.2") wurde mehr maskiert, jetzt bei PHP 5.5 offenbar nicht (mehr). > > Ah, jetzt wird ein Schuh draus (oder zumindest besteht die Chance dazu). Schreibe bitte den unten folgenden Code in eine Datei, speichere sie als [inlinecode]test.php[/inlinecode] (oder wie du sie auch immer nennen willst), lade sie auf deinen Webspace und rufe sie im Browser auf. > > [code=php]<?php echo '<pre>' . ini_get('magic_quotes_gpc') . '</pre>'; ?>[/code] > > Zitat aus dem [link=http://php.net/manual/de/info.configuration.php#ini.magic-quotes-gpc]PHP-Manual zu magic_quotes_gpc[/link]: > > > "Legt die magic_quotes Einstellungen für GPC (Get/Post/Cookie) fest. Ist diese Einstellung auf on, werden alle ' (einzelne Anführungszeichen), " (doppelte Anführungszeichen), \ (Backslash) und NUL's automatisch mit einem Backslash geschützt." > > … und … > > > "[b]Warnung[/b] Dieses Feature ist seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP 5.4.0 ENTFERNT." > > Es sollte zu einem Fehler oder zur Ausgabe von [inlinecode]0[/inlinecode] kommen. Diese PHP-Einstellung wurde, wie oben zitiert, mit PHP 5.4 abgeschafft. Das MLF1-Skript macht jedoch bis Version 1.7.6 exzessiv Gebrauch von dieser Einstellung. [b]Das[/b] ist "das Leiden" von MLF1. > > Nun sollte das kein Problem sein, weil etwas, was nicht hinzugefügt wird, nicht behandelt werden muss. Es ist jedoch bei Altinstallationen doch da. Es sind die wahrscheinlich hunderte oder tausende Stellen, an denen im Inhalt der Beiträge eines Forums diese Backslashes seit immer da sind und nun aus den vorhandenen Daten entfernt werden müssen. > > Da [inlinecode]magic_quotes_gpc[/inlinecode] nach den Regeln der Funktion [link=http://php.net/manual/de/function.addslashes.php][inlinecode]addslashes[/inlinecode][/link] arbeitet, ist dazu, wenn man nicht Masochist ist und händisch an die Sache herangeht, die Funktion [link=http://php.net/manual/de/function.stripslashes.php][inlinecode]stripslashes[/inlinecode][/link] – eventuell, wegen Mehrfachsetzungen in Zitaten, in mehreren Durchläufen – das Mittel der Wahl. Aber sie entfernt [i]wahrscheinlich[/i] auch die Backslashes, die z.B. in Windows-Hilfeforen als Verzeichnisnamen trennende Zeichen in Pfadangaben verwendet werden. "Wahrscheinlich", weil ich schon lange nicht mehr mit solchen Problemen zu tun hatte und mich nur noch dunkel daran erinnern kann, dass so etwas in Alex' damaligen MLF1-Projektforum diskutiert wurde. > > Die Inhalte müssen schlussendlich aus der Datenbank entnommen, [i]richtig[/i] behandelt und zurückgespeichert werden. Hier schlagen die je nach Anbieter unterschiedlichen Begrenzungen für Laufzeit und zugewiesenen Arbeitsspeicher für PHP-Skripte zu. Wie das zu lösen ist, müssen wir noch überlegen. > > > Wir müssen (und sollten) das jetzt vielleicht auch nicht weitertreiben. Es scheint ja nach außen dennoch zu funktionieren. > > > > Ich wollte es nur rechtzeitig melden - jetzt würde ich die frisch dazugekommenen Beiträge ggf. noch 'reparieren' können. Später wäre es vielleicht Strafarbeit. > > Da es, wie gesagt, eh "richtig" gemacht werden muss, kommen wir um "später" nicht herum. Im Zweifelsfall werden Texte vorübergehend falsch ausgegeben ("Carlo\'s Imbiss"). Das sieht unschön aus, macht aber technisch nichts kaputt. > > > > Behalte dein ENT_QUOTES. Das hat, wie ich hoffentlich verständlich ausführte, mit deiner Beobachtung nichts zu tun. Das [b]dahinter[/b] liegende Problem muss gesondert gelöst werden. Dafür bräuchte ich deine und, falls er noch da ist, auch Sebastians Hilfe bei Tests. > > > > Ich will gern im Rahmen meiner Möglichkeiten helfen. Damals beim Kurs hatten wir uns einen WAMP-Server eingerichtet - ich hoffe, ich bekomme das aktuell auch noch hin. > > Es wird eher darum gehen, Skripte mit Kopien Eurer Inhalte [i]auf [b]Euren[/b] Webspaces[/i] zu testen. Ich will eure Foreninhalte, wenn es sich vermeiden lässt, überhaupt nicht zu Gesicht bekommen. Wenn wir eine Lösung für Problem X erarbeitet haben – wer weiß, was auf uns wartet –, gehört dazu die Erstellung einer Kopie der Datenbanktabellen (geht über phpMyAdmin) und die Bearbeitung [i]dieser Kopien[/i] mit den Skripten. Eine eigenen Serverinstallation braucht ihr nicht. Wenn alles gut läuft und die Ergebisse passen, brauchen die Tabellen nur umbenannt werden und ihr habt wieder ein von den Fehlern bereinigtes Forum. > > Tschö, Auge
E-mail notification on reply of this posting
OK - Submit
Preview