PHP-Skript ergänzen und in HTML-Seite einbauen

Hi,

$patt = ‚/[^a-z0-9.-]/‘;

meinst Du das ernsthaft?

so wie aus lacta’s script zu erkennen ist, wird der POST-Inhalt gleich in lower konvertiert.
Ruft man mit dieser var als Parameter die sauber auf fluscht es!!

Fragen? Einfach fragen!

h♥rzlichen Gruß
Nitya

Moin, Moin!

$patt = ‚/[^a-z0-9.-]/‘;

meinst Du das ernsthaft?

so wie aus lacta’s script zu erkennen ist, wird der
POST-Inhalt gleich in lower konvertiert.
Ruft man mit dieser var als Parameter die sauber auf fluscht
es!!

Jetzt wird es etwas verwirrend für mich. Mein Muster-Dateiname deckt ja nur ein Minimum an „verbotenen“ Zeichen ab.

ÄÜ?ä"ö:ü|ß%W\X§Y/Z#a\*b'mehr weiß Klein-Anselm nicht.pdf

ist wohl aussagekräftiger. Das Ergebnis:

ae\_oe\_ue\_ae\_\_oe\_ue\_ss\_w\_\_x\_y\_z\_a\_b\_\_mehr\_weiss\_klein\_anselm\_nicht.pdf

Eines stimmt: Der Bindestrich müsste nicht umgewandelt werden. Und die Ursache der doppelten Unterstriche ist mir unklar.

Spannend!

Gruß, Anselm

Hallo,

ÄÜ?ä"ö:ü|ß%W\X§Y/Z#a*b’mehr weiß Klein-Anselm nicht.pdf

ist wohl aussagekräftiger. Das Ergebnis:

ae_oe_ue_ae__oe_ue_ss_w__x_y_z_a_b__mehr_weiss_klein_anselm_nic
ht.pdf

Eines stimmt: Der Bindestrich müsste nicht umgewandelt werden.

ist ja kein Problem, aber maskiert muss er sein, da er ansonsten ein „Steuerzeichen“ im regulären Ausdruck ist:

$patt = '/[^a-z0-9\.\-@]/';

auch „@“ wird nun nicht mehr ersetzt (darf in URL vorkommen)

Und die Ursache der doppelten Unterstriche ist mir unklar.

Tja … ist mir auch schon aufgefallen, aber hierauf habe ich auch keine Antwort.

Die gleiche Ersetzung in Perl gibt keine doppelten Unterstriche:

$dname =~ s/[^a-z0-9\.\-@]/\_/g;

h♥rzlichen Gruß
Nitya

1 Like

Hallo Nitya,

Eines stimmt: Der Bindestrich müsste nicht umgewandelt werden.

ist ja kein Problem, aber maskiert muss er sein, da er
ansonsten ein „Steuerzeichen“ im regulären Ausdruck ist:

$patt = ‚/[^a-z0-9.-@]/‘;

Bezüglich des Maskierens hast Du schon mal geschrieben, stimmt. Ich habe Dein letztes Skript einfach geguttenbergt.

auch „@“ wird nun nicht mehr ersetzt (darf in URL vorkommen)

Es handelt sich nur um Dateinamen, keine URL. Für meine Zwecke habe ich es deshalb rausgelassen.

Und die Ursache der doppelten Unterstriche ist mir unklar.

Tja … ist mir auch schon aufgefallen, aber hierauf habe ich
auch keine Antwort.

Wer hätte das gedacht? :wink: Vielleicht hat ja jemand anderes noch eine Idee.

Die gleiche Ersetzung in Perl gibt keine doppelten
Unterstriche:

$dname =~ s/[^a-z0-9.-@]/_/g;

Bei PHP möchte ich bleiben.

Dank und Gruß,

Anselm

Hallo Anselm,

Und die Ursache der doppelten Unterstriche ist mir unklar.

Und so wie es aussieht nur bei single und double Quotes.
Das ist mit „merkwürdig“ und liegt nicht am Ausdruck, denn mit Javascript gibt es auch keine doppelten Unterstriche:

var patt = new RegExp('[^a-z0-9\.\-]', 'g');

h♥rzlichen Gruß
Nitya

1 Like

OT^6: PHP-Skript ergänzen und in HTML-Seite …
Besserwissen nerft , wenn sie es nicht besser machen .
Zumal es einen Browser nicht interressiert , Browser sind ja nicht so Kleinkarriert wie du , dementsprechend Fehlt auch kein Tag , da keiner sagte , löse mein Problem HTML 4.1 conform . !!

Sind alle Falsch ich weiss , aber wirklich zu 99% gibt es keine fieldsets in den Beispielen . Dabei hast du doch recht und nicht die anderen . sollte dir das zu denken geben …

Also HTML ist irgentwie nur in deinem sinne immer validiert . Irgentwie interressiert es aber kaum die Clients , "klingt komisch " ist aber so

Tim sagt zu Tom : „Sei schlau , bleib doof“
Tom sagt : Boa so einfach ist das , danke , bleib ich doch einfach doof !!!

bla bla bla … die reaktor explodiert … ne kann garnicht sein … wieso kann das nicht sein … weil es „der reaktor“ heisst … aber er explodiert … er ist ein Es …aber explodieren ist richtig … ja aber was … … …

Hallo Nitya,

Und die Ursache der doppelten Unterstriche ist mir unklar.

Und so wie es aussieht nur bei single und double Quotes.
Das ist mit „merkwürdig“ und liegt nicht am Ausdruck, denn mit
Javascript gibt es auch keine doppelten Unterstriche:

var patt = new RegExp(’[^a-z0-9.-]’, ‚g‘);

Wirklich seltsam. Aber die Gefahr, dass jemand Dateinamen mit ’ oder " wählt ist wirklich gering. Und ich schaue ja immer noch mal drüber, bevor ich die Dateien dann hochlade.

Vielen Dank und Gruß,

Anselm

avascript gibt es auch keine doppelten Unterstriche:

var patt = new RegExp(’[^a-z0-9.-]’, ‚g‘);

Wirklich seltsam. Aber die Gefahr, dass jemand Dateinamen mit
’ oder " wählt ist wirklich gering. Und ich schaue ja immer
noch mal drüber, bevor ich die Dateien dann hochlade.

Und genau darauf schauen Programmierer , eigentlich sollen alle möglichen Fälle abgedeckt werden , gerade wenn es später mal für eine automation genuzt wird . Ein , „kommt bestimmt nie vor“ , ist eine sehr warscheinliche Aussage beim Programmieren , „es kann vorkommen und damit ist es ein zu erwartender Fehler“. Ich sag nur MacOS und Windows Dateinamen , hab ich schon alles erlebt und nicht geglaubt.

Vielen Dank und Gruß,

Anselm

ich krieg irgentwie keine doppelten unterstriche :frowning: mit
/[^a-z0-9.-@]/
und
ÄÜ?ä"ö:ü|ß%W\X§Y/Z#a*b’mehr weiß Klein-Anselm nicht.pdf
kommt
ae_oe_ue_ae_oe_ue_sz_w_x_y_z_a_b_mehr_weisz_klein-anselm_nicht.pdf

php 5.x

mach ich was falsch
ae_oe_ue_ae_oe_ue_sz_w_x_y_z_a_b_mehr_weisz_klein-anselm_nicht.pdf

Also mein localer server läst sich mit

accept-charset=„UTF-8“

auch auf diese zuviel unterstriche bringen.

Bei meinem online server allerdings funktioniert kein
accept-charset=„ISO-8859-1“ dort wird immer UTF-8 gewandelt .

hmm , eigentlich gute frage , wie zwing ich nun den online space , bzw wo muss ich von einem zum anderen konvertieren.

ich weiß auch nicht wieso …

habe es auf PHP 5.2.6-4 und 4.4.9 mit charset utf-8 und iso-8859-1 getestet
immer aus dem input-Feld heraus und online (apache-server)
und es gab immer doppelte
auf der 5er mit utf-8 am meisten - also nicht nur bei den Quotes

Wie weit da die PHP-Configuration mitspielt?
Kenne ich mich damit überhaupt nicht aus.

Besserwissen nervt , wenn sie es nicht besser machen .

weil strenggenommen = valide fehlt weder fieldset noch label sondern nur ein p-tag

und so sind sie nun einmal … besonders unser Senfchen!!!

Hi,

Eines stimmt: Der Bindestrich müsste nicht umgewandelt werden.

ist ja kein Problem, aber maskiert muss er sein, da er
ansonsten ein „Steuerzeichen“ im regulären Ausdruck ist:

$patt = ‚/[^a-z0-9.-@]/‘;

eben nicht unbedingt - siehe meine letzte Antwort, die Du offenbar ignoriert hast.

$patt = '/[^a-z0-9.@-]/';

kommt ganz ohne Maskierung aus.

Gruß
Ingo