Avatar billede msdb Nybegynder
16. september 2011 - 09:58 Der er 11 kommentarer og
1 løsning

php, mkdir()

Jeg er i færd med at lave en en side i php som kan oprette mapper på mit domæne samt en værdi i min database, men jeg har lidt besvær med at få mkdir() til at virke.

Koden lyder:

<i>
<form method="post" action="#">
  <input name="folder" type="text" id="text" maxlength="15" />
  <input type="Submit" name="submit" id="submit" value="Udfør">
  </form>
  <?php
        function makemydir($dirname) {
        $dirname = "public_html/upload/".$dirname;
        mkdir($dirname,'0700');
  }

        if ($_POST['submit'])
        {
            if (empty($_POST['folder']))
                die('Angiv et navn til mappen');
            $text = $_POST['folder'];
            mysql_select_db('files');
            if(mysql_query("INSERT INTO files (id , link) VALUES ('',
  '$text')"))
                echo 'Mappe tilføjet.';
                $dirname = $text;
                makemydir($dirname);
        }
    ?>
</i>

Hvilket giver fejlen:

<i>
mkdir(): Unable to access public_html/upload/test in /home/virtual/....dk/public_html/new_fld.php on line 265
</i>

Den brokker sig altså over:

mkdir($dirname,'0700');

Hvorfor dog det?
Avatar billede skelboe Nybegynder
16. september 2011 - 11:45 #1
Er "public_html/upload/test" den fulde sti?

Ellers kan det være safe_mode er sat til, og så tror jeg ikke du kan bruge mkdir
Avatar billede msdb Nybegynder
16. september 2011 - 12:01 #2
Ah ja, stien skulle lige rettes. Nu opretter den mappen, jeg lader dog ikke til at have adgang til den. Underligt.
Avatar billede skelboe Nybegynder
16. september 2011 - 12:08 #3
0700 giver kun ejer adgang, og det kan godt være at du har _www, eller noget i den stil, som ejer.
Du kan prøve med 0744 først og se om det virker
Avatar billede msdb Nybegynder
16. september 2011 - 12:38 #4
0744 giver delvis adgang til mappen. Jeg kan åbne den, men må ikke se hvad den indeholder.
Avatar billede skelboe Nybegynder
16. september 2011 - 13:00 #5
prøv med 0755
Avatar billede msdb Nybegynder
16. september 2011 - 14:10 #6
Samme resultat som 0744.
Avatar billede skelboe Nybegynder
16. september 2011 - 14:18 #7
Hvilke tilladelser har mappen Upload?

0744 skulle giver ejer fuld adgang, bruger skulle kunne se og læse.

ellers må du prøv 0777, fuld adgang til alle
Avatar billede msdb Nybegynder
16. september 2011 - 14:43 #8
Upload har fuld adgang (0777). Hvis jeg f.eks. bruger 0777 i mkdir, så bliver den automatisk lavet om til 0411, når jeg tjekke den via ftp.
Avatar billede skelboe Nybegynder
16. september 2011 - 14:58 #9
i stedet for
mkdir($dirname,'0700');

så prøv
mkdir($dirname, 0755);

2 argument skal være int og ikke streng
Avatar billede skelboe Nybegynder
16. september 2011 - 14:59 #10
hvis du bruger dit script på windows, ignorer windows den "mode" du forsøger at sætte, og du skal i stedet bruge chmod efter du har oprettet mappen.
Avatar billede msdb Nybegynder
16. september 2011 - 15:13 #11
Selvfølgelig. Yderst effektiv tilføjelse. Nu virker det.
Tak for hjælpen :)
smid et svar
Avatar billede skelboe Nybegynder
16. september 2011 - 15:17 #12
Et svar
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
Kurser inden for grundlæggende programmering

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