Toon posts:

[PHP] checken of een directorynaam valid is

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben bezig met een scriptje waarmee je directories kan aanmaken maar ik ben nog op zoek naar een stukje code om het vrij van fouten te houden

<?php
include 'start.php';
if ($opslaan == '1') {
if (!file_exists("posts/$naam")) {
mkdir ("posts/$naam", 0777);
echo '<a href=index.php>Klik hier om terug te gaan</a>';
exit;
}
$dir = dir($path);
echo 'BESTAAT AL!';
?>


nu wil ik dus bij hetvolgende stukje zorgen dat tekens zoals / \ : e.d. er voor zorgen dat de if niet klopt :P

if (!file_exists("posts/$naam")) {
if (ditweet ik dus niet) {
mkdir ("posts/$naam", 0777);
echo '<a href=index.php>Klik hier om terug te gaan</a>';
exit;
}
else {
echo 'ongeldige directorynaam';
}
}

bedenk me net wel dat ik op zich de boel zou kunnen strippen met str_replace maar lijkt me toffer als die gewoon een foutmelding uitpoept

  • tomato
  • Registratie: November 1999
  • Niet online

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20:58

Janoz

Moderator Devschuur®

!litemod

Kijk eens naar preg_match oid. Met reguliere expressies kun je heel makkelijk controleren of de dirnaam wel uit de juiste tekens bestaat.

In het commentaar bij de phpmanual staat wel een intresante link : http://extropia.com/tutorials/perl_faq.html#regular

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
woeps dat had ik er ff bij moeten zeggen, win32 bak zonder prul

  • tomato
  • Registratie: November 1999
  • Niet online
bl00dhound: woeps dat had ik er ff bij moeten zeggen, win32 bak zonder prul
:?

Verklaar u nader...

Verwijderd

Topicstarter
al het een perl commando si dan kan ik hem toch niet runnen op een windows bak als ik geen perl.exe heb op deze bak :?

  • tomato
  • Registratie: November 1999
  • Niet online
Het is geen perl commando. Kijk nog eens naar de link die ik je gaf.

Verwijderd

is_dir?
[edit: sorry niet goed gelezen.. tijd voor wat koffie]

Verwijderd

niet gewoon

if(!ereg("[/\]", $naam)){

}

zoiets?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Strip .. uit de bestands naam en probeer hem gewoon aan te maken. mkdir geeft dan wel terug of het gelukt is.

Programmer - an organism that turns coffee into software.


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Een reguliere expressie lijkt mij hier op zijn plaats toch ?
Voorbereiding :
Hoeveel tekens mag een dir naam hebben ? (ik denk 256)
Hoeveel tekens moet een dir minimaal zijn ? (1)
Welke tekens mogen er in zitten ?(0-9a-zA-z\-_ letters, cijfers en _ en -)

Nou dan heb je het vrij makkelijk.
PHP:
1
<?$pattern =   "\^"             //  Dir naam begint met ..      ."[0-9a-zA-Z\-_]" // Klasse van characters 0-9 cijfers, a-z kleine letters, A-Z grote letter, - het - , _ de _      ."{1,256}"        //Dit patroon moet minimaal 1 keer en maximaal 256 keer voorkomen      ."$/"            //Tevens dient de string te eindigen met voorgaande voorwaarde?>

Nou zo moet het te doen zijn toch.



[/php]

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

en wat nou als de directory con nul dev lpt1 of iets in die richting heet?

Programmer - an organism that turns coffee into software.

Pagina: 1