5 berichten aan het bekijken - 1 tot 5 (van in totaal 5)
  • Q:
    Bijdrager
    julesp

    [PHP] Directory kopieeren en wijzigen

    Hallo OMT’ers,
    Ik heb voor een website een stukje php nodig dat het volgende kan, is dit mogelijk?
    Nadat de gebruiker zich heeft geregisteerd moet het volgende gebeuren:
    1. Kopieeren van een map (‘demo’) bestanden
    2. Wijzigen van ‘demo’ -> ‘gebruiksnaam’.
    3. Aanpassen van bestand -> Wachtwoord

    Groetjes,
    Jules

    Bijdrager
    wout3r

    Heel simpel, gewoon even de copy functie bekijken!

    Succes

    Bijdrager
    wout3r

    Na je PBtje heb ik even een functie voor je geschreven, misschien kan je hier wat mee (en hopelijk andere bezoekers ook). Ik hoop dat je er zo uit komt.

    Je kan de functie createUserFolder dus aanroepen en daarbij gooi je de volgende eigenschappen er in:

    $sUsername
    De gebruikersnaam, zonder allemaal gekke speciale tekens en zonder spaties.

    $sDirectoryFrom
    Hierbij plaats je het pad naar je map (gezien vanuit het PHP bestand).

    $sPathTo
    Het pad waar de map van de gebruiker komt te staan.

    Succes!

    Nog een opmerking: dit werkt (nog) niet als je nog mappen in je ‘demo’ map hebt staan. Dat zou je opzich wel makkelijk kunnen aanpassen door te checken of er in de map nog een map zit en daarop nog een keer de functie af te vuren.

    [code:1:246a893adf]<?php

    function createUserFolder( $sUsername, $sDirectoryFrom, $sPathTo ) {

    if( is_dir( $sPathTo . $sUsername ) ) {
    return false; // Map bestaat al
    }

    // Gebruikers map aanmaken
    if( mkdir( $sPathTo . $sUsername, 0777 ) ) {

    if( is_dir( $sDirectoryFrom ) ) {

    if( $bHandle = opendir( $sDirectoryFrom ) ) {
    while( ( $sFile = readdir( $bHandle ) ) !== false ) {

    if( is_file( $sDirectoryFrom .’/’. $sFile ) && is_readable( $sDirectoryFrom .’/’. $sFile ) ) {

    // Bestanden in de map ophalen en kopieeren
    if( !copy( $sDirectoryFrom .’/’. $sFile, $sPathTo . $sUsername .’/’. $sFile ) ) {
    return false;
    }
    }
    }
    }
    else {
    return false; // Map kan niet worden gelezen
    }
    }
    else {
    return false; // De map waarvan je kopieert is geen map of bestaat niet.
    }

    return true; // Succesvol aangemaakt
    }
    }

    if( createUserFolder( ‘wout3r’, ‘demo’, ” ) ) {
    echo ‘Succesvol aangemaakt’;
    }
    else {
    echo ‘Fout bij het aanmaken’;
    }

    ?>[/code:1:246a893adf]

    Bijdrager
    wout3r

    Inmiddels al gelukt?

    Bijdrager
    me.com

    Jules en ik zijn er inderdaad mee bezig en het gaat perfect!:)
    Alleen moeten we nog even kijken hoe we de code ombouwen zodat hij ook de mappen in een map kopieert. Blijkt nogal een moeilijke klus.

5 berichten aan het bekijken - 1 tot 5 (van in totaal 5)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.