/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
opret og skriv til fil...
Fra : Jesper Brunholm


Dato : 15-04-02 15:44

Hej Folks

jeg har lidt problemer med en funktion hvor jeg gerne skal kunne
generere en lang række filer til videre forarbejdning. Det er derfor
ikke fedt skulle lave hver fil først - for så derefter at kunne skrive
til den...

jeg har følgende:
<<
$skrivfil = "work/1822.txt";
$fil = fopen($skrivfil,"a", 1); /* "-a" Open for writing only; place the
* file pointer at the end of the file. If the file does not exist,
* attempt to create it. */
fwrite($fil, $workout);
fclose($fil);
>>
Mit problem er at jeg ikke har skriverettigheder til at oprette filen

jeg har overvejet chmod(), men kan ikke gennemskue hvordan det kan
hjælpe mig?

venligst

/Jesper Brunholm


 
 
Christian Joergensen (15-04-2002)
Kommentar
Fra : Christian Joergensen


Dato : 15-04-02 15:55

On Mon, 15 Apr 2002 16:44:04 +0200, Jesper Brunholm wrote:

> Mit problem er at jeg ikke har skriverettigheder til at oprette filen
>

Hvis ikke du har skriverettigheder kan du under ingen omstændigheder
oprette filen. Spørg din administrator om han vil gøre det muligt for
dig, eller hvis det er dig selv, kig på chmod programmet.

--
Christian Jørgensen | Use the Source, Luke!
http://www.razor.dk |

[5000] Jesper Brunho~ (15-04-2002)
Kommentar
Fra : [5000] Jesper Brunho~


Dato : 15-04-02 16:33

Christian Joergensen wrote:
> On Mon, 15 Apr 2002 16:44:04 +0200, Jesper Brunholm wrote:
>
>
>>Mit problem er at jeg ikke har skriverettigheder til at oprette filen
>>


> Hvis ikke du har skriverettigheder kan du under ingen omstændigheder
> oprette filen. Spørg din administrator om han vil gøre det muligt for
> dig, eller hvis det er dig selv, kig på chmod programmet.

Jeg må godt modificere til at jeg _har_ skriverettigheder manuelt i mit
ftp-program, men det kræver at filen er oprettet.
Det jeg ønsker er at komme udenom den manuelle oprettelse af filen og
efterfølgende ændring af rettigheder, dvs at kunne udføre disse
funktioner via php.

Det viser sig imidlertid at jeg ikke har adgang til at bruge chmod, da
flg ikke virker:

$skrivfil = "work/1822.txt";
chmod("$skrivfil",666);
$fil = fopen($skrivfil,"a", 1);
fwrite($fil, $workout);
fclose($fil);
chmod("$skrivfil",775);

- jeg får beskeden
Warning: chmod failed: Operation not permitted in [...]/work.php on line 35

Venligst

Jesper Brunholm


Andreas Haugstrup Pe~ (15-04-2002)
Kommentar
Fra : Andreas Haugstrup Pe~


Dato : 15-04-02 17:00

"[5000] Jesper Brunholm" <nospam@brunholm-scharff.dk> wrote in
news:3CBAF2C4.3060901@brunholm-scharff.dk:

> - jeg får beskeden
> Warning: chmod failed: Operation not permitted in [...]/work.php on
> line 35

Du får den besked fordi du opretter filen som én bruger (i dit FTP program)
og prøver at chmod'de den med en anden bruger (webserveren) som ikke har
adgang til at rette.

--
Andreas
http://www.solitude.dk

Andrew Engels Rump (~ (16-04-2002)
Kommentar
Fra : Andrew Engels Rump (~


Dato : 16-04-02 15:42

After drinking 3 Pan Galactic Gargle Blasters, "[5000] Jesper Brunholm"
<nospam@brunholm-scharff.dk> mumbled in
news:3CBAF2C4.3060901@brunholm-scharff.dk:
> Jeg må godt modificere til at jeg _har_ skriverettigheder manuelt
> i mit ftp-program, men det kræver at filen er oprettet.
> Det jeg ønsker er at komme udenom den manuelle oprettelse af filen
> og efterfølgende ændring af rettigheder, dvs at kunne udføre disse
> funktioner via php.
> Det viser sig imidlertid at jeg ikke har adgang til at bruge chmod,
> da flg ikke virker:
> $skrivfil = "work/1822.txt";
> chmod("$skrivfil",666);

chmod() kan kun udføres på filer der eksistere, så den kan først
stå efter fclose()

> $fil = fopen($skrivfil,"a", 1);

catch22, da du ikke har lov til at oprette filen som web-bruger,
da det har en anden bruger id end din ftp-bruger, som har lov til
at gøre alt med filer!

> fwrite($fil, $workout);
> fclose($fil);
> chmod("$skrivfil",775);

Løsningen (ADVARSEL: jeg kender faktisk ikke de sikkerhedsmæssige
problemer, hvis der er nogen, men hvis du holder det hemmeligt er
der ikke nogen der kan misbruge det alligevel), er at oprette et
katalog som du i ftp-programmet giver chmod 757. Her kan ALLE
oprette filer incl. dit php-program! Problem solved.

Jeg ved så ikke om andre også kan overføre filer via HTTP til
kataloget, men hvis du kun skriver katalognavnet i din php-kode,
er der ingen der kan se hvad det hedder.

Andrew
--
*** The opinions expressed are not necessarily those of my employer. ***
* Software Engineer Andrew Engels Rump * BLIK og ROERarbejderforbundet *
* Immerkaer 42, 2650 Hvidovre * Tlf: +45 3638 3638, Fax: +45 3638 3639 *
Home: N55°41'38.9" E12°29'08.6" (WGS 84) Work: N55°39'50.9" E12°27'47.4"
E-mail: mailto:newandrew@rump.dk WWW http://www.rump.dk/homepage/andrew/

[5000] Jesper Brunho~ (16-04-2002)
Kommentar
Fra : [5000] Jesper Brunho~


Dato : 16-04-02 16:45

Andrew Engels Rump (formerly Leif Andrew Rump) wrote:
> After drinking 3 Pan Galactic Gargle Blasters, "[5000] Jesper Brunholm"
> <nospam@brunholm-scharff.dk> mumbled in
> news:3CBAF2C4.3060901@brunholm-scharff.dk:
> chmod() kan kun udføres på filer der eksistere, så den kan først
> stå efter fclose()

jeps - så i virkeligheden skal jeg udføre den på biblioteket - når og
hvis jeg får lov til at udføre kommandoen (af sikkerhedshensyn, da det
åbner mit bibliotek kortere tid end når jeg manuelt sætter mod med
ftp-programmet)

> catch22, da du ikke har lov til at oprette filen som web-bruger,
> da det har en anden bruger id end din ftp-bruger, som har lov til
> at gøre alt med filer!

jeps - det fandt jeg også ud af - med det resultat at jeg er nødt til at
tillade web-brugere at skrive - hvad jeg så midlertidigt har gjort (som
du foreslår nedenfor)

> Løsningen (ADVARSEL: jeg kender faktisk ikke de sikkerhedsmæssige
> problemer, hvis der er nogen, men hvis du holder det hemmeligt er
> der ikke nogen der kan misbruge det alligevel), er at oprette et
> katalog som du i ftp-programmet giver chmod 757. Her kan ALLE
> oprette filer incl. dit php-program! Problem solved.

jeps - exactly - og tak for hjælpen!

> Jeg ved så ikke om andre også kan overføre filer via HTTP til
> kataloget, men hvis du kun skriver katalognavnet i din php-kode,
> er der ingen der kan se hvad det hedder.

nej - jeg skal være ret uheldig for at der er nogen der når at nakke mig

tak igen!

venligst

/Jesper Brunholm


Andrew Engels Rump (~ (17-04-2002)
Kommentar
Fra : Andrew Engels Rump (~


Dato : 17-04-02 13:11

After drinking 3 Pan Galactic Gargle Blasters, "[5000] Jesper Brunholm"
<nospam@brunholm-scharff.dk> mumbled in
news:3CBC46EC.3040901@brunholm-scharff.dk:
> Andrew Engels Rump (formerly Leif Andrew Rump) wrote:
>> After drinking 3 Pan Galactic Gargle Blasters, "[5000] Jesper
>> Brunholm"
>> <nospam@brunholm-scharff.dk> mumbled in
>> news:3CBAF2C4.3060901@brunholm-scharff.dk: chmod() kan kun udføres
>> på filer der eksistere, så den kan førs t stå efter fclose()
> jeps - så i virkeligheden skal jeg udføre den på biblioteket - når
> og hvis jeg får lov til at udføre kommandoen (af sikkerhedshensyn,
> da det åbner mit bibliotek kortere tid end når jeg manuelt sætter
> mod med ftp-programmet)

Eh?!? Jeg skrev det ikke tydeligt nok, men jeg vil helt klart
foreslå at du laver et under-katalog, som kun dit php-program
kender til! Alle kan jo se hvor dine php-filer ligger, men ikke
hvad de laver!

Som jeg læser det du skriver, så vil du have php-programmet til
at udføre chmod, men det kan det ikke - ihvertifald ikke så php-
programmet kan give sig selv adgang til et katalog!

>> catch22, da du ikke har lov til at oprette filen som web-bruger,
>> da det har en anden bruger id end din ftp-bruger, som har lov
>> til at gøre alt med filer!
> jeps - det fandt jeg også ud af - med det resultat at jeg er nødt
> til at tillade web-brugere at skrive - hvad jeg så midlertidigt
> har gjort (som du foreslår nedenfor)

Forhåbentlig i et under-katalog?

>> Løsningen (ADVARSEL: jeg kender faktisk ikke de sikkerhedsmæssige
>> problemer, hvis der er nogen, men hvis du holder det hemmeligt er
>> der ikke nogen der kan misbruge det alligevel), er at oprette et
>> katalog som du i ftp-programmet giver chmod 757. Her kan ALLE
>> oprette filer incl. dit php-program! Problem solved.
>> Jeg ved så ikke om andre også kan overføre filer via HTTP til
>> kataloget, men hvis du kun skriver katalognavnet i din php-kode,
>> er der ingen der kan se hvad det hedder.
> nej - jeg skal være ret uheldig for at der er nogen der når at
> nakke mig

Ikke hvis du giver dem katalognavnet via navnet på dine php-filer!

Andrew
--
*** The opinions expressed are not necessarily those of my employer. ***
* Software Engineer Andrew Engels Rump * BLIK og ROERarbejderforbundet *
* Immerkaer 42, 2650 Hvidovre * Tlf: +45 3638 3638, Fax: +45 3638 3639 *
Home: N55°41'38.9" E12°29'08.6" (WGS 84) Work: N55°39'50.9" E12°27'47.4"
E-mail: mailto:newandrew@rump.dk WWW http://www.rump.dk/homepage/andrew/

Søg
Reklame
Statistik
Spørgsmål : 177504
Tips : 31968
Nyheder : 719565
Indlæg : 6408549
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste