AN DAS ADSL FORUM

Alle technisch orientierten Fragen und Diskussionen rund um Internet-Zugänge via ADSL und xDSL (alle DSL-basierenden Technologien).
Forumsregeln
Alle technisch orientierten Fragen und Diskussionen rund um Internet-Zugänge via ADSL und xDSL (alle DSL-basierenden Technologien).

Diskussionen über Provider (deren Produkte und Dienstleistungen) werden im Bereich PROVIDER geführt.

AN DAS ADSL FORUM

Beitragvon hermste » Di 10 Apr, 2001 21:08

Hallo!

Das paßt jetzt zwar nicht zur höchstbrisanten akuten Entwicklung des nächsten unlimited Providers, aber einige Vielposter und Dauerleser kennen das Problem und ich hab mich mal darüber schlau gemacht:

Bei Anführungszeichen " und ' wird im E-Mail UND im Web immer, wie man es jetzt wahrscheinlich auch sieht ein Backslash davorgegeben und einem Backslash steht auch ein Backslash bevor: Beispiele:
\ " '

Es GIBT Abhilfe - auch für dieses Forum:

Ich gehe davon aus, das der Nachrichtentext in der Variable $text gespeichert ist!
Funktion in PHP:
stripslashes($text)

OK, für die Mailfunktion geht das ja super, ABER fürs Web brauchen sie ja die, sonst ist es html-code. Übrigens wäre es ratsam, die Anführungszeichen in der Webansicht zu konvertieren, um keine Codeschwierigkeiten zu bekommen.
Also für die Webdarstellung:
--> auch ein stripslashes($text)
und danach ein

$text = eregi_replace( '"', """, $text);
$text = eregi_replace( 'ö', "ö", $text);
$text = eregi_replace( 'Ö', "Ö", $text);
$text = eregi_replace( 'ä', "ä", $text);
$text = eregi_replace( 'Ä', "Ä", $text);
$text = eregi_replace( 'ü', "ü", $text);
$text = eregi_replace( 'Ãœ', "Ü", $tex);
$text = eregi_replace( 'ß', "ß", $text);

und dann ist die Site sogar HTML-konform! (aber diese replaces nicht für die mail-funktion verwenden!)
Denn es schickt sich überhaupt nicht, ein Anführungszeichen so einfach in den TEXT zu stellen, das soll bitteschön schon ein " ein ü ein ü usw. sein!!!

das bräuchte man nur in das programm http://ADSL.at/forum/read.php einfügen, dann SOLLTE es funktionieren - aber wir wissen ja, wie das mit den computern ist.... ;-)))
Ich hoffe, das ist eine Anregung für die Redaktion!

NATÜRLICH müßt ihr, um den code zu verwenden können ein wirrwarr von Backslashes löschen, aber das könnt ihr ohne Bedenken machen, da ich keinen einzigen Backslash im Posting habe.

hermste
hermste
 

RE: AN DAS ADSL FORUM

Beitragvon ADSL Redaktion » Mi 11 Apr, 2001 17:24

hermste schrieb:
-------------------------------
>Bei Anführungszeichen " und ' wird im E-Mail UND im Web immer, wie man es jetzt wahrscheinlich auch sieht ein Backslash davorgegeben und einem Backslash steht auch ein Backslash bevor: Beispiele: \ " '

>Es GIBT Abhilfe - auch für dieses Forum: ..stripslashes($text)..

Zuerst bitte ich alle Forumsteilnehmer um Entschuldigung, dass wir uns dieses Ärgernis erst jetzt angeschaut haben. Neben einem Büroumzug, der Familie und auch sonst jeder Menge Arbeit kam ich einfach nicht früher dazu.

Doch jetzt zum Problem: Wenn man eine Zeichenfolge wie "sehr wichtig" ohne weitere Sonderbehandlung einem MySQL-Datenfeld übergibt, interpretiert MySQL das Sonderzeichen " als Ende des übergebenen Strings.

Deshalb muss vor dem Sonderzeichen ein Backslash () gesetzt werden. Dieser Vorgang wird auch als Escaping bezeichnet. Für das manuelle Escaping stehen in PHP die Funktionen addslashes() & strpslashes() zur Verfügung.

Wurde aber der Schalter „magic_quotes_gpc“ auf On gesetzt (/usr/local/lib/php.ini), wird das manuelle Escaping überflüssig.

Beim Schalter „magic_quotes_runtime“ handelt es sich um das automatische Escaping von Daten aus Daten die zum Beispiel aus einer Datenbank gelesen werden.

Mit den Einstellungen...
magic_quotes_gpc Off
magic_quotes_runtime On
... in der Datei /usr/local/lib/php.ini müsste jetzt eigentlich wieder alles funktionieren.

mfg
Peter Mayer
ADSL Redaktion
ADSL Redaktion
 

RE: AN DAS ADSL FORUM

Beitragvon ADSL Redaktion » Fr 13 Apr, 2001 22:27

hermste schrieb:
-------------------------------
>Bei Anführungszeichen " und ' wird im E-Mail UND im Web immer, wie man es jetzt wahrscheinlich auch sieht ein Backslash davor gegeben und einem Backslash steht auch ein Backslash bevor: Beispiele: \ " '

>Es GIBT Abhilfe - auch für dieses Forum: ..stripslashes($text)..

Zuerst bitte ich alle Forumsteilnehmer um Entschuldigung, dass wir uns dieses Ärgernis erst jetzt angeschaut haben. Neben einem Büroumzug, der Familie und auch sonst jeder Menge Arbeit kam ich einfach nicht früher dazu.

Doch jetzt zum Problem: Wenn man eine Zeichenfolge wie "sehr wichtig" ohne weitere Sonderbehandlung einem MySQL-Datenfeld übergibt, interpretiert MySQL das Sonderzeichen " als Ende des übergebenen Strings.

Deshalb muss vor dem Sonderzeichen ein Backslash () gesetzt werden. Dieser Vorgang wird auch als Escaping bezeichnet. Für das manuelle Escaping stehen in PHP die Funktionen addslashes() & stripslashes() zur Verfügung.

Wurde der Schalter „magic_quotes_gpc“ auf On gesetzt (/usr/local/lib/php.ini), wird das manuelle Escaping überflüssig.

Beim Schalter „magic_quotes_runtime“ handelt es sich um das automatische Escaping von Daten die zum Beispiel aus einer Datenbank gelesen werden.

Beim Update von PHP3 auf PHP4 wird nicht mehr die Datei /usr/local/lib/php3.ini sondern stattdessen die Datei /usr/local/lib/php.ini verwendet. Wenn nun diese Datei noch nicht existiert, nimmt PHP automatisch den Wert "On" für die Variable magic_quotes_runtime an.

Mit den Einstellungen...
magic_quotes_gpc Off
magic_quotes_runtime Off
... in der Datei /usr/local/lib/php.ini müsste jetzt eigentlich wieder alles funktionieren.

mfg
Peter Mayer
ADSL Redaktion

PS.: Für Fragen rund um PHP und MySQL haben wir jetzt auch das Forum <b>http://forum.php.at</b> und <b>http://forum.mysql.at</b> eingerichtet.
ADSL Redaktion
 


Zurück zu ADSL & xDSL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 94 Gäste