Avatar billede summersun Nybegynder
16. juli 2003 - 17:37 Der er 47 kommentarer

Rettigheder på mapper

Hejsa

jeg har et lille upload script hvor folk kan uploade små ting..

mit problem er så bare at man ikke lige har adgang til at uploade i til den angivet mappe :(

jeg ved at man ændre på rettigheden via at et ftp program,

men jeg vil gerne have lavet det sådan at den åbner og lukker for adgangen igen efter at filen er blevet uploadet

jeg har set på noget der hedder Umask() men det ser ikk rigtig ud til at virke.. da den stadig siger at man ikk har adgang
Avatar billede TRoXa Novice
16. juli 2003 - 17:41 #1
Du kan nok bruge denne funktion :)

move_uploaded_file($userfile,$sted);
Avatar billede summersun Nybegynder
16. juli 2003 - 17:51 #2
nix...

same problem
Avatar billede 7th Praktikant
16. juli 2003 - 17:52 #3
http://dk2.php.net/manual/en/function.chmod.php

Du skal bruge chmod funktionen for at ændre rettighederne.
Din sætter den før du flytter fil.
Avatar billede 7th Praktikant
16. juli 2003 - 17:54 #4
chmod ("/somedir/somefile" , 0777);
move_uploaded_file ($fra , $til);
Avatar billede summersun Nybegynder
16. juli 2003 - 17:55 #5
nix..

har jeg også prøvet... :(
Avatar billede TRoXa Novice
16. juli 2003 - 17:56 #6
kan du skrive hvad fejlen er når du prøver at uploade en fil ?
Avatar billede 7th Praktikant
16. juli 2003 - 17:56 #7
Må jeg se det snip af dit script hvor du uploader en fil.
Avatar billede summersun Nybegynder
16. juli 2003 - 17:57 #8
bortset fra at den siger

Warning: chmod(): No such file or directory

chmod ($filewithpath, 0777);
move_uploaded_file ($temp_file , $filewithpath);
Avatar billede 7th Praktikant
16. juli 2003 - 17:58 #9
Du kan jo ikke chmod noget der ikke er der. $filewithpath indeholder jo både din mappe samt fil går jeg ud fra.
Avatar billede TRoXa Novice
16. juli 2003 - 17:58 #10
du skal ikke chmodde filewithpath men kun path
Avatar billede summersun Nybegynder
16. juli 2003 - 17:59 #11
nej, men det ændre ikk noget at jeg fjerne filen fra stien og bare skriver den stien....
Avatar billede 7th Praktikant
16. juli 2003 - 18:00 #12
Skriv lige hvad $temp_file og $filewithpath er lig med.
Avatar billede summersun Nybegynder
16. juli 2003 - 18:04 #13
$temp_file = $HTTP_POST_FILES['webcode_temp']['tmp_name'];
$filewithpath = "../images/pic/1_500/1/1058371409.jpg"
Avatar billede 7th Praktikant
16. juli 2003 - 18:07 #14
Prøv med...

chmod ("../images/pic" , 0777);
$temp_file = $HTTP_POST_FILES['webcode_temp']['tmp_name'];
$filewithpath = "../images/pic/1_500/1/1058371409.jpg"
move_uploaded_file ($temp_file , $filewithpath);
Avatar billede 7th Praktikant
16. juli 2003 - 18:10 #15
Sover...
chmod ("../images/pic/1_500/1" , 0777);
Avatar billede summersun Nybegynder
16. juli 2003 - 18:13 #16
Warning: chmod(): No such file or directory
Avatar billede 7th Praktikant
16. juli 2003 - 18:23 #17
Hmm kigger lige på det.
Avatar billede jakoba Nybegynder
16. juli 2003 - 18:41 #18
prøv e t lille test script for at se hvilke mapper du egentlig kan finde:

<?php
chmod ("../images/pic" , 0777);
echo "../images/pic" ." gik ok.";

chmod ("../images/pic/1_500" , 0777);
echo "../images/pic/1_500" ." gik ok.";

chmod ("../images/pic/1_500/1" , 0777);
echo "../images/pic/1_500/1" ." gik ok.";
?>

brug cut&paste for at fortælle hvad der kom ud af det af fejlmelding og tekst.
Avatar billede summersun Nybegynder
16. juli 2003 - 18:47 #19
Warning: chmod(): No such file or directory in /home/users/test/test.dk/www/scripts/test_script.php on line 2
../images/pic gik ok.
Warning: chmod(): No such file or directory in /home/users/test/test.dk/www/scripts/test_script.php on line 5
../images/pic/1_500 gik ok.
Warning: chmod(): No such file or directory in /home/users/test/test.dk/www/scripts/test_script.php on line 8
../images/pic/1_500/1 gik ok.
Avatar billede jakoba Nybegynder
16. juli 2003 - 19:00 #20
Så er det jo simpelthen din filstruktur du ikke har check på.

2 spørgsmål:
1) hvad er den fulde mappesti for den mappe hvor dit php-script ligger.
2) hvad er den fulde mappeskti for mappen 'images'
Avatar billede 7th Praktikant
16. juli 2003 - 19:02 #21
Jeg må tilstå jeg har samme problem. Jeg har lige lavet et lille script, og jeg kan simpelthen ikke få lov til at chmod en mappe. Derimod er det intet problem med en fil, mærkeligt. Roder dog videre ;)
Avatar billede summersun Nybegynder
16. juli 2003 - 19:04 #22
jo jeg har ganske fn styr på mine mappe stier ;) og den fuld sti til scriptet kan du jo se oven over ;) men vi tager den igen

[script]
/home/users/test/test.dk/www/scripts/

[images]
/home/users/test/test.dk/www/images/
Avatar billede TRoXa Novice
16. juli 2003 - 19:05 #23
man kan ikke skifte mode på en mappe med funktionen chmod .. den er kun beregnet til filer
Avatar billede TRoXa Novice
16. juli 2003 - 19:08 #24
kan du ikke paste dit script her ? dit upload script
Avatar billede summersun Nybegynder
16. juli 2003 - 19:21 #25
har dog svært at se hvad det skulle hjælpe af se mit script.. men her er det

<?

   
$tmpname     = time();

$temp_file      = $HTTP_POST_FILES['webcode_temp']['tmp_name'];
$picName    = $HTTP_POST_FILES['webcode_temp']['name'];

$destDir     = "../images/pic/1_500/1/";
       
if(( $temp_file <> "none")&&( $temp_file <> "")){ 
   
    if ( is_uploaded_file( $temp_file )){
                                   
        $image = getimagesize($temp_file );

        switch($image[2])  {
               
            case 1:
                $picName = $tmpname.".gif";
           
                break;
               
            case 2:
                $picName = $tmpname.".jpg";
           
                break;
               
            case 3:
                $picName = $tmpname.".png";
           
                break;
            case 6:
                $picName = $tmpname.".bmp";
           
                break;

        }

       
        $filewithpath = $destDir . $picName;

        copy( $temp_file , $filewithpath );
       
        unlink( $temp_file );

    }

}

?>
Avatar billede 7th Praktikant
16. juli 2003 - 19:25 #26
Jeg tror du er nød til at chmod din mappe via ftp. Jeg har søgt og søgt, og jeg tror troxa har ret. Hvis man skal chmod en mappe skal man have ejerrettigheder som kan sættes med chown(), men det er for indviklet til mig.
Avatar billede jakoba Nybegynder
16. juli 2003 - 19:27 #27
chmod kan bruges på mapper. en mappe er blot en speciel slags fil.
men "../images/pic" er åbenbart ikke den korrekte måde at adressere mappen 'pic' fra et script i mappen 'scripts'.

prøv evt med:
chmod ("/home/users/test/test.dk/www/images/pic" , 0777);
echo "/home/users/test/test.dk/www/images/pic" ." gik ok.";
Avatar billede TRoXa Novice
16. juli 2003 - 19:30 #28
det med echo bla bla gik ok er nok ikke ... uhmm .. ej det er jo lige meget .. men at skrive at det gik ok .. når det ikke gør .. det holder jo ikke ;)
Avatar billede summersun Nybegynder
16. juli 2003 - 19:31 #29
Warning: chmod(): No such file or directory
Avatar billede jakoba Nybegynder
16. juli 2003 - 19:37 #30
Pointen er at den fejlmeddelelse betyder at den ikke kan finde mappen pic. den mappe findes ikke eller også adresserer vi den stadig ikke korrekt.

men ja. det er da fjoget at skrive 'gik ok'. Det er blot for at skrive noget der, så vi kan se om fejlmeddelelsen kommer før eller efter den udskrift.
Avatar billede summersun Nybegynder
16. juli 2003 - 19:44 #31
jakoba >>

tjaaa.... men jeg kan ikk se hvordan man ellers skulle adresserer den :/
Avatar billede TRoXa Novice
16. juli 2003 - 19:47 #32
er det din egen server eller får du siden hostet ?
Avatar billede jakoba Nybegynder
16. juli 2003 - 19:47 #33
Det kan jeg desværre heller ikke; men det er en meget klar fejlmeddelelse du får. Den finder ikke mappen på den adresse vi giver.
Avatar billede jakoba Nybegynder
16. juli 2003 - 19:53 #34
check evt om du bruger forkerte store/små bogstaver  'Pic' er ikke det samme som 'pic' på en unixbaseret server.
Avatar billede 7th Praktikant
16. juli 2003 - 19:57 #35
jakoba > jeg håber du har ret, du plejer ihvertfald at have ret ;)

http://www.justrandb.dk/system/123.php her får jeg en "Operation not permitted" fejl. Hvis den bliver løst, tja så er summersuns problem jo løst ;)
Avatar billede summersun Nybegynder
16. juli 2003 - 20:00 #36
efter at have rodet lidt... får jeg den her besked

Warning: chmod(): Operation not permitted
Avatar billede jakoba Nybegynder
16. juli 2003 - 20:03 #37
Det kunne lyde somom det er troxa og 7th der har ret i a chmod ikke umiddelbart kan bruges på en mappe.
Avatar billede summersun Nybegynder
16. juli 2003 - 20:06 #38
tjaa.. men hvis man ikke kan det.. hvad gør man så?
Avatar billede 7th Praktikant
16. juli 2003 - 20:14 #39
Jeg fandt disse tråde som "forklarer" problemet. Man kan godt chmod en mappe som jakoba siger, men det kræver rettigheder til at gøre det. Lokalt er det intet problem hos mig, men på den server jeg har mit domæne hosted, har jeg selvfølgelig ikke tilladelse til at gøre det. Som jeg nævnte tidligere er den eneste mulighed for dig at chmod via et ftp program.

http://www.phpbuilder.com/board/showthread.php?s=b89fd5a8b680df0d876fb5146eb178a5&threadid=10238115&highlight=Operation+AND+not+AND+permitted

http://www.phpbuilder.com/board/showthread.php?s=b89fd5a8b680df0d876fb5146eb178a5&threadid=10214582&highlight=Operation+AND+not+AND+permitted

http://www.phpbuilder.com/board/showthread.php?s=b89fd5a8b680df0d876fb5146eb178a5&threadid=10234926&highlight=Operation+AND+not+AND+permitted
Avatar billede 7th Praktikant
16. juli 2003 - 20:16 #40
http://www.webcafe.dk/artikler/diverse/ftp/#chmod

Alternativt kunne du også spørge om de ikke kunne ændre tilladelsen for chmod der hvor du er hosted, men det er ret usandsynligt de har lyst til at gøre det.
Avatar billede summersun Nybegynder
16. juli 2003 - 20:41 #41
som jeg startet med at ligge ud i mit spørgsmål... så tror jeg det er umask() man skal bruge...


eksp:

<html><body>

<?
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name']))
{
  umask(033);
  copy($HTTP_POST_FILES['userfile']['tmp_name'], "path/".$HTTP_POST_FILES['userfile']['name']);
  // Bemærk / efter path navnet. Den skal med.
  // Windows brugere, erstat "path" med "d:\\home\\FtpBrugernavn\\db\\"
}
else
{
  echo "Possible file upload attack: filename ", $HTTP_POST_FILES['userfile']['name'];
}
?>

<FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD="POST">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="2000000">
Send this file: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Upload">
</FORM>
   
</body></html>
Avatar billede summersun Nybegynder
16. juli 2003 - 20:44 #42
Avatar billede summersun Nybegynder
16. juli 2003 - 20:55 #43
problemet er bare jeg fatter ikke en meter af UMASK...

om hvilket hemmeligt tal man skal skrive for at at det bliver til 0777
Avatar billede 7th Praktikant
16. juli 2003 - 21:04 #44
Jeg forstår heller ikke ret meget af det, men ifølge dit link beskrives det, at...

Biblioteket /ftpbrugernavn/phpupload/ skal eksistere i ens ftpbibliotek, og have rettighederne 777.
Det bibliotek som man kopierer/flytter den uploadede fil til skal være 777, dvs biblioteket "moveuploadsto" i eksemplet nedenfor.
Du skal altså chmod din mappe til 777 via ftp.

Det eksempel der er beskrevet i linket er brugt på den uploadede fil, og ikke selve mappen.
Avatar billede 7th Praktikant
16. juli 2003 - 21:13 #45
Ifølge Eky i spørgsmål http://www.eksperten.dk/spm/309881 skal man sætte umask() lige før move_uploaded_file() hvis man er hosted hos azero.

Prøv med dette. Mit sidste bud :)

$sti = $_SERVER['DOCUMENT_ROOT']."din_sti_til_mappe";
$fra = $_FILES['billede']['tmp_name'];
$til = "$sti".$_FILES['billede']['name'];
umask (033);
move_uploaded_file ($fra , $til);
Avatar billede 7th Praktikant
28. juli 2003 - 05:34 #46
Synes du ikke der er nogen som fortjener points? Du har fået rigtig meget hjælp, og også fået nogle konkrete svar på dit spørgsmål. Hvis jeg var dig, ville jeg have utrolig dårlig samvittighed. Luk venligst tak, og vis du værdsætter hjælpen.
Avatar billede 7th Praktikant
13. september 2003 - 21:33 #47
Hallo, er det nogen hjemme?
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