[php] mkdir() werkt niet

Pagina: 1
Acties:
  • 135 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Om het kort te houden:

Als ik het volgende script uitvoer:
PHP:
1
2
3
4
5
<?php
$old_umask = umask(0);
umask($old_umask);
mkdir("/test/", 0777);
?> 


krijg ik de volgende error:
code:
1
Warning: mkdir(/test/): Permission denied in /usr/home/*****/public_html/*****/bestand.php on line 4


Ik heb dus geen rechten om een te een map te maken. Echter de map waar het php bestand en in staat en het bestand zelf hebben chmod 777 dus zou hij de map wel aan moeten maken.

Wat doe ik nu fout? Heb gegoogled en hier op GoT gezocht en kom er niet uit.

[ Voor 8% gewijzigd door KappuhH op 05-07-2006 15:30 ]


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 21:56

Cyphax

Moderator LNX
Probeer je nu niet in de root van je FS een directory aan te maken? (je geeft niet genoeg info om daar uitsluitsel over te geven, ik ga even uit van *NIX trouwens)
Probeer het pad aan te passen, bijvoorbeeld "test" ipv "/test/"

[ Voor 15% gewijzigd door Cyphax op 05-07-2006 15:31 ]

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

je wilt niet in de huidige map een directory aanmaken, maar in de root ('/'). Zeg maar het begin van het bestandssysteem. Het is natuurlijk logisch dat je daar geen rechten voor hebt. Verander '/test/' eens in 'test' en probeer dan nog eens of het werkt. :)

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:07

TeeDee

CQB 241

probeer het eens met mkdir("test/", 0777)?
In mijn gedachte gang gaat ie nu namelijk een directory 'test' in je public_html/****/ maken.

edit:
zo dan... dat ging snel

[ Voor 30% gewijzigd door TeeDee op 05-07-2006 15:33 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
mkdir("test/", 0777); en test mkdir("test", 0777); werken geen van beiden.

Wat is 'root van mn FS'?

Acties:
  • 0 Henk 'm!

Verwijderd

En al zet je dit er nog even voor:

code:
1
/usr/home/...../public_html/...../


Edit: Laat maar ;)

[ Voor 33% gewijzigd door Verwijderd op 05-07-2006 15:43 ]


Acties:
  • 0 Henk 'm!

  • Rowdy.nl
  • Registratie: Juni 2003
  • Laatst online: 18-09 14:48

Rowdy.nl

Koekje d'r bij?

KappuhH schreef op woensdag 05 juli 2006 @ 15:35:
mkdir("test/", 0777); en test mkdir("test", 0777); werken geen van beiden.

Wat is 'root van mn FS'?
De root van je FS is bij een linux/unix machine "/". Dat is hetzelfde als "C:\" bij windows...

Wat je doet met je commando, is een nieuwe map aanmaken, op een bepaald pad, met bepaalde rechten. Echter, je script wat het uitvoerd moet rechten hebben om te schijven op de plaats waar je die map aan wilt maken. Doe eerst dus eens de rechten op je map waar je scriptje instaat aanpassen, en het vervolgens nog eens proberen met chmod("test". 0777);

Edit: FS betekent trouwens File System

[ Voor 9% gewijzigd door Rowdy.nl op 05-07-2006 15:43 ]

Rowdy.nl - X++ by day. C# by night. I drink coffee in the morning and beer in the evening.


Acties:
  • 0 Henk 'm!

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Verwijderd schreef op woensdag 05 juli 2006 @ 15:41:
En al zet je dit er nog even voor:

code:
1
/usr/home/...../public_html/...../


Edit: Laat maar ;)
Als ik dat doe krijg ik een andere foutmelding namelijk:

code:
1
Warning: mkdir(/usr/home/*****/public_html/*****/test/): File exists in /usr/home/*****/public_html/*****/mkdir.php on line 4


Aan hierboven:
Zoals ik al zei heb ik de map waar het script in staat en het script zelf (via mn ftp client) chmod 777 gegeven. Dus dan zoudie het in principe toch moeten doen?

[ Voor 18% gewijzigd door KappuhH op 05-07-2006 15:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

KappuhH schreef op woensdag 05 juli 2006 @ 15:47:
[...]

Als ik dat doe krijg ik een andere foutmelding namelijk:

code:
1
Warning: mkdir(/usr/home/*****/public_html/*****/test/): File exists in /usr/home/*****/public_html/*****/mkdir.php on line 4


Aan hierboven:
Zoals ik al zei heb ik de map waar het script in staat en het script zelf (via mn ftp client) chmod 777 gegeven. Dus dan zoudie het in principe toch moeten doen?
Kijk dan is voor de zekerheid of de map niet al is aangemaakt? :)

Acties:
  • 0 Henk 'm!

  • Rowdy.nl
  • Registratie: Juni 2003
  • Laatst online: 18-09 14:48

Rowdy.nl

Koekje d'r bij?

Angelolel bedoelde niet letterlijk overtikken, maar het volledige pad naar je map gebruiken.

We zullen eens vooraan beginnen:
1) Wat voor server heb je? Linux, Windows
2) Welke versie PHP?
3) Staat safe mode aan of uit?
4) Pleur onderstaande code ergens in een bestandje op je server en geef ons de link even :)
PHP:
1
2
3
<?php
phpinfo();
?>

Rowdy.nl - X++ by day. C# by night. I drink coffee in the morning and beer in the evening.


Acties:
  • 0 Henk 'm!

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Verwijderd schreef op woensdag 05 juli 2006 @ 15:54:
[...]


Kijk dan is voor de zekerheid of de map niet al is aangemaakt? :)
8)7 8)7 8)7

Hij had hem inmiddels al gemaakt op 1 of andere manier. Het is nu dus gelukt. Iedereen bedankt voor zijn (of haar) hulp!

Acties:
  • 0 Henk 'm!

Verwijderd

Die sterretjes moet uiteraard wel even worden weggehaald :)

Aan de mappenstructuur te zien neem ik aan dat het toch wel een Linux server is, Chmodden zou dus mogelijk moeten zijn.

Maarja laten we maar even naar het Info bestand kijken.

Edit: Toch wil ik wel even weten op welke manier :) Kunt u dit nog even uitspitten?

[ Voor 16% gewijzigd door Verwijderd op 05-07-2006 16:05 ]


Acties:
  • 0 Henk 'm!

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Verwijderd schreef op woensdag 05 juli 2006 @ 16:04:
Die sterretjes moet uiteraard wel even worden weggehaald :)

Aan de mappenstructuur te zien neem ik aan dat het toch wel een Linux server is, Chmodden zou dus mogelijk moeten zijn.

Maarja laten we maar even naar het Info bestand kijken.

Edit: Toch wil ik wel even weten op welke manier :) Kunt u dit nog even uitspitten?
Ik had de url van het bestand in mn adresbalk staan, als ik weer wat geupdate had ging ik het bestand via mn ftpclient uploaden. Als ik dat gedaan had klikte ik op refresh of drukte ik op F5. Waarschijnlijk heb ik toen 2x gedrukt/geklikt.
Klik1 --> geen foutmelding
Klik2 --> foutmelding file exists
Domweg niet gezien dattie een keer geen foutmelding zag. Het is ook zoooo warm...

Acties:
  • 0 Henk 'm!

Verwijderd

Dus met test of test/ zou het al moeten lukken?

Acties:
  • 0 Henk 'm!

  • KappuhH
  • Registratie: Augustus 2004
  • Niet online
Verwijderd schreef op woensdag 05 juli 2006 @ 16:14:
Dus met test of test/ zou het al moeten lukken?
Ja, het bestand moet dan echter wel al de juiste chmod hebben. Om de chmod 777 mee te geven aan de map die hij maakt moet je wel volgende stukje code er boven zetten:

PHP:
1
2
3
4
<?php
$old_umask = umask(0);
umask($old_umask); 
?>

Anders maakt hij er chmod 755 van (omdat umask standaard op 0022 staat). Daarover kun je meer lezen op: http://nl2.php.net/umask
Pagina: 1