stefan scheurer: filename mit regexp kontrollieren...kriegs nicht hin...

Beitrag lesen

hi wolfgang

danke für den input...
das abbrechen muss sein...ich möchte auf jeden fall verhindern, dass der user was tun kann, was nicht optimal ist...(arbeite noch mit einer DB im hintergrund).

an sich geht es nur darum, dass mein regexp alles als auf die expr "zutreffend" bezeichnet...

das if({$file} !~ /[1]+?.([a-zA-Z]{3,4})$/)

ist also irgendwie falsch...ich weiss nur nicht was...

danke und gruss
scheuri

Hi,

eine dieser kontrollen ist die bezeichnung des files, welche a-zA-Z_0-9 plus - und _ und . behinhalten soll.

ich habe im SELFHTML einen ansatz gefunden, ihn aber umgeschrieben und sehe nun den fehler nicht ...

if({$file} !~ /[2]+?.([a-zA-Z]{3,4})$/)

dann sollte das script abbrechen (mit entsprechender meldung), wenn also das file sonderzeichen hat oder die extension 3 zeichen unterschreitet bzw. 4 überschreitet....

Warum abbrechen?

ich wuerde es so machen, dass ich alle ungueltigen Chars loesche und das nehme, was uebrigbleibt als Dateiname.
(Es sei denn, es gibt kein Zeichen mehr uebrig, oder es ist gleich "." oder "..", oder ".,").

Also etwa so:

$file =~ s/[^a-z0-9-_.]+//gi;

if (($file eq ".") || ($file eq "..") || ($file eq ".,")) {
  $file = "";
}

if ($file) {
  # Tu irgendwas

} else {
  # Fehlerfall

}

Ciao,
Wolfgang


  1. \w.- ↩︎

  2. \w.- ↩︎