Avatar billede webcreator Nybegynder
02. juli 2003 - 01:42 Der er 22 kommentarer og
3 løsninger

Tjek variabel for æøå

Hej.

$fil = "Fødselsdagen var skæg og sjov.txt";

Hvordan kan jeg tjekke, om ovenstående indeholder æøå (og evt. andre ulovlige tegn ? Jeg skal bruge det til mit upload-script. Hvis mine filer indeholder æ, ø eller å, så kan jeg ikke hente dem.
Avatar billede ahv Nybegynder
02. juli 2003 - 01:44 #1
if (eregi("[æøå]", $var)) {
// Skidt æøå :o(
Avatar billede Slettet bruger
02. juli 2003 - 01:51 #2
Normalt - og i det dette tilfælde også - er det en bedre strategi at teste for, hvad input må være - fremfor hvad det ikke må være.

Så altså noget ala følgende:

if (eregi("^[a-z_]+$", $fil))
  // ok
else
  // bad
Avatar billede webcreator Nybegynder
02. juli 2003 - 01:52 #3
mercur > Hvorfor ?
Filnavnet kan jo godt være :
$filnavn = "sldfjkweij    !  ______ _ _ _ !!  _ _! sfl jw æejkf !";
Avatar billede webcreator Nybegynder
02. juli 2003 - 01:54 #4
Hm, tja, du har nok ret. Ville da helst slippe for skumle filnavne :)

Hvis jeg vil have tal med, ser det så sådan ud :

if (eregi("^[a-z_0-9]+$", $fil))
Avatar billede Slettet bruger
02. juli 2003 - 01:56 #5
Hvis du bruger 30 sekunder på at tænke dig om, tror jeg godt, du kan se hvorfor.

Og ja til det med 0-9.
Avatar billede nocs Nybegynder
02. juli 2003 - 01:56 #6
eller

    if (strstr(strtolower($fil),"å")) fejl("Der må ikke være \"å\" i emner.");
    if (strstr(strtolower($fil),"ø")) fejl("Der må ikke være \"ø\" i emner.");
    if (strstr(strtolower($fil),"æ")) fejl("Der må ikke være \"æ\" i emner.");
Avatar billede ahv Nybegynder
02. juli 2003 - 02:04 #7
Du kan også lave en replace på alle de tegn du ikke vil have også lave dem om til noget andet, her er en med æøå ->

<?php
$str = "jeg har en å. Åen den ligger på en ø";
$erstat['å'] = "aa";
$erstat['Å'] = "AA";
$erstat['ø'] = "oe";
$erstat['Ø'] = "OE";
$erstat['æ'] = "ae";
$erstat['Æ'] = "AE";
foreach($erstat as $key=>$value){
  $str = str_replace($key,$value,$str);
}
echo $str;
?>
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:04 #8
En sidste ting. Hvordan tjekker jeg for æøå ?
Prøvede med if (eregi("^[a-z_0-9æøåÆØÅ]+$", $fil))
Men det virker ikke.
Avatar billede ahv Nybegynder
02. juli 2003 - 02:07 #9
Det du har der burde virke.
Avatar billede ahv Nybegynder
02. juli 2003 - 02:07 #10
^[a-zæøå0-9]+$
Avatar billede ahv Nybegynder
02. juli 2003 - 02:08 #11
^[a-zæøå0-9_]+$
Avatar billede Slettet bruger
02. juli 2003 - 02:09 #12
webcreator: Du startede med at skrive, du ikke ville have æøå med. Hvorfor vil du så nu?
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:09 #13
Hvis jeg nu vil have den til at udskrive fejl, hvis var'en indeholder ulovlige tegn, så skal der bare et ! foran eregi, ikke ?
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:10 #14
Lige this :
    if (!eregi("^[a-z_0-9æøåÆØÅ]+$", $file_name)) {
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:10 #15
like - ikke lige
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:10 #16
Mercur > Nå ja. Det har du da ret i. Må være trælt :o(
Sorry for den..
Avatar billede ahv Nybegynder
02. juli 2003 - 02:11 #17
Ja så skal der et ! foran.
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:12 #18
Well, flg. filnavn vil den ikke godtage :
sdf10291478sfasdfsdfjk234209843slf
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:13 #19
Bare lige så vi er helt enige :

if (!eregi("^[a-z_0-9]+$", $file_name)) {
        header("location:upload.php");
        exit;
    }
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:13 #20
Måske fordi der er punktum i ?
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:13 #21
- det er jo et filnavn. Leger lige med et punktum.
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:14 #22
Tilføjede bare et punktum efter 0-9 - virker fint nu. tak :)
Avatar billede nocs Nybegynder
02. juli 2003 - 02:17 #23
$splitFil = explode(".", $file_name);

if (!eregi("^[a-z_0-9]+$", $splitFil[0)) {
        header("location:upload.php");
        exit;
    }
Avatar billede nocs Nybegynder
02. juli 2003 - 02:18 #24
sorry for det sidste... er sq for langsom ;)
Avatar billede webcreator Nybegynder
02. juli 2003 - 02:19 #25
hehe :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester