Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] uploaden en verwijderen van bestanden

Pagina: 1
Acties:

Onderwerpen


  • ID-College
  • Registratie: November 2003
  • Laatst online: 10:43
Beste leute,

Ik ben bezig met een script dat gebruikers bestanden (foto's) laat uploaden en verwijderen. Een soort marktplaats idee.

Het systeem is als volgt. Je vult velden in en upload foto's. Dit komt allemaal aan en gaat prima.
Echter, wanneer gebruikers foto's uploaden, dan wordt een hash gegeneerd bij een advertentie. Deze hash is de naam van de map.
Ik wil dus een nieuwe map maken (in de map images) en daarin de foto's plaatsen. Echter, ik krijg het niet voor elkaar.
Als functie gebruik ik mkdir(), echter deze geeft de volgende fout:
Warning: mkdir() [function.mkdir]: Permission denied in /home/admin/domains/blablabla on line 153.

Volgens google ligt dit aan de rechten van de gebruiker. Via ftp_connect, ftp_login en ftp_site zet ik CHMOD rechten op 777. Dit gaat ook prima.
Vervolgens voer ik dus mkdir() uit in diezelfde map, maar dan krijg ik bovenstaande foutmelding.

De code is als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function chmod_map($map, $mod) {
    $conn_id = ftp_connect("mijnIP");
    $login_result = ftp_login($conn_id, "user", "pass");
    if(ftp_site($conn_id, 'CHMOD '.$mod.' /path/naar/mijn/public_html/'.$map) !== false)
       $succes = true;
    else
        $succes = false;
    ftp_close($conn_id);
    return $success;
}

$adv_hash = "test";
if(!file_exists(getcwd()."/adv/img/".$adv_hash)) {
    chmod_map("adv/img/", 0777);
    mkdir(getcwd()."/adv/img/".$adv_hash, 0777);
}

Dit werkt dus niet.. :?
Waarom kan ik niet simpel een map aanmaken?

  • SoulWar1
  • Registratie: Augustus 2004
  • Laatst online: 22-11 13:30
De user waaronder apache draait probeert de map aan te maken, deze zal waarschijnlijk geen rechten hebben op /home/admin.

Know Thyself


  • ID-College
  • Registratie: November 2003
  • Laatst online: 10:43
Hoe los ik dit op. Ik kan in mijn adminpanel nergens iets vinden? (directadmin)

  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

Heb je al gedebugt? Je gebruikt relatieve en absolute paden door elkaar, dat lijkt me niet handig. Print eens alle variabelen zoals
PHP:
1
echo getcwd()."/adv/img/".$adv_hash;

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 12:13
Pas trouwens op met het genereren van hashes dat je geen speciale tekens gebruikt welke eventueel niet in map- of bestandsnamen mogen voorkomen :).

  • ID-College
  • Registratie: November 2003
  • Laatst online: 10:43
@hierboven: dat klopt, die worden niet gebruikt :)
8088 schreef op woensdag 13 juli 2011 @ 22:34:
Heb je al gedebugt? Je gebruikt relatieve en absolute paden door elkaar, dat lijkt me niet handig. Print eens alle variabelen zoals
PHP:
1
echo getcwd()."/adv/img/".$adv_hash;
Er gaat dus niets fout, althans, niet wat ik kan vinden. Vandaar mijn vraag :?
Daarnaast zijn alles absolute paden. Het relative pad wat jij wss bedoelt wordt aan de rest geplakt in de functie (wat dus resulteert in een absoluut pad).

[ Voor 4% gewijzigd door ID-College op 13-07-2011 22:40 ]


  • X_lawl_X
  • Registratie: September 2009
  • Nu online
Als ik me niet vergis moet je ftp_mkdir() gebruiken ipv mkdir().

  • SoulWar1
  • Registratie: Augustus 2004
  • Laatst online: 22-11 13:30
Die getcwd() functie geeft toch niet het gewenste resultaat. Welk pad geeft echo __FILE__; ?

Know Thyself


  • ID-College
  • Registratie: November 2003
  • Laatst online: 10:43
@hierboven: hetzelfde als getcwd() maar dan met de bestandsnaam erbij..
X_lawl_X schreef op woensdag 13 juli 2011 @ 22:44:
Als ik me niet vergis moet je ftp_mkdir() gebruiken ipv mkdir().
Dit lijkt iig te werken, ga hier even verder op in! :)

  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

ID-College schreef op woensdag 13 juli 2011 @ 22:40:
Er gaat dus niets fout, althans, niet wat ik kan vinden. Vandaar mijn vraag :?
Vandaar mijn suggestie om te gaan debuggen: print alle waardes waar je mee werkt. Ik heb ook de indruk dat je de lokale en remote locaties met elkaar verwart.

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


  • Camulos
  • Registratie: Januari 2009
  • Laatst online: 17-11 12:35

Camulos

Stampert

1 tip :: zet geen mappen met rechten op 777 ^^ hiermee kan iedereen lezen + schrijven + uitvoeren op die specifieke map. ** kuch security black hole kuch **

Zet je map op maximaal 755 (hiermee kan de eigenaar lezen + schrijven + executeren) en de rest alleen Lezen + executeren.

Not just an innocent bystander


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Als je dan toch gaat FTP'en, waarom FTP je niet meteen het bestand naar de juiste plek? Dan hoef je helemaal niks aan je rechten te doen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1