Mappen aanmaken en foto's in deze map weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan C

Daan C

04/01/2012 20:25:04
Quote Anchor link
Ik zou graag hebben dat bij het toevoegen van een huis aan de database er een map wordt aangemaakt op de FTP.
Alle foto's die dan in deze map geupload worden ik willen tonen. Iemand die weet hoe ik dit kan doen?

Welke functies?
Eventueel een voorbeeld script?

Alvast bedankt !
 
PHP hulp

PHP hulp

24/12/2024 17:53:17
 
- Ariën  -
Beheerder

- Ariën -

04/01/2012 20:33:27
Quote Anchor link
al gekeken naar http://php.net/ftp ?
 
Frank WD

Frank WD

04/01/2012 20:36:53
Quote Anchor link
Je kan ook via php doen als voorbeeld onderstaande.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$structure
= './' . $_POST['naam'] . '/'; // Naam word de mapnaam
if (!mkdir($structure, 0777)) {
    die('Failed to create folders...');
}

?>
Gewijzigd op 04/01/2012 20:38:44 door Frank WD
 
Daan C

Daan C

04/01/2012 21:29:49
Quote Anchor link
Tot zover het volgens mij gemakkelijkere gedeelte (waarvoor nu al dank)
Maar zou graag weten hoe je die bestanden uit deze map kunt lezen en dan kunt uitprinten op de pagina?

Bedankt
 
- Ariën  -
Beheerder

- Ariën -

04/01/2012 22:00:41
Quote Anchor link
Frank van sloten op 04/01/2012 20:36:53:
Je kan ook via php doen als voorbeeld onderstaande.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$structure
= './' . $_POST['naam'] . '/'; // Naam word de mapnaam
if (!mkdir($structure, 0777)) {
    die('Failed to create folders...');
}

?>

Zet jij de deur altijd open voor hackers met 0777?
 
Aad B

Aad B

04/01/2012 22:42:44
Quote Anchor link
Verder ook geen: die('Failed to create folders...'); doen maar op de juiste plaats een fout loggen.
 
- SanThe -

- SanThe -

04/01/2012 22:51:28
Quote Anchor link
- Aar - op 04/01/2012 22:00:41:
Frank van sloten op 04/01/2012 20:36:53:
Je kan ook via php doen als voorbeeld onderstaande.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$structure
= './' . $_POST['naam'] . '/'; // Naam word de mapnaam
if (!mkdir($structure, 0777)) {
    die('Failed to create folders...');
}

?>

Zet jij de deur altijd open voor hackers met 0777?


Als $_POST['naam'] niet is gecontroleerd op geldigheid is het script toch al open voor hackers.
 
Frank WD

Frank WD

05/01/2012 00:05:46
Quote Anchor link
Was maar een voorbeeld hoor. Controleren op $_POST moet je altijd doen en is (vind ik) voor de vraag niet relefant.

Tevens strek ik dit stukje ook zomaar van internet via Google.nl 2 hit.
Was was bedoelt als kleine voorbeeld.
Gewijzigd op 05/01/2012 00:06:19 door Frank WD
 

05/01/2012 01:19:38
Quote Anchor link
Hier, om gewoon de mappen te maken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
    
    # De map:
    $directory = 'testmap/ test';

    # Hiermee haal je alle niet numerieke of letters uit $directory.
    # Dit gebruik je al je wilt dat hij eerst de map testmap aanmaakt, dan test enzovoort:

    $directory = preg_replace('/[^a-zA-Z0-9\/\s]/', '', $directory);
    # Dit gebruik je als je wilt dat hij maar één map aanmaakt:
    $directory = preg_replace('/[^a-zA-Z0-9\s]/', '', $directory);
    
    # Nu verander spaties in onderliggende streepjes:
    $directory = str_replace(' ', '_', $directory);
    
    # Je zou nog een soort van random nummer kunnen toevoegen, zodat de kans kleiner is
    # op dezelfde mapnamen.
    # Dit zou dan zoiets zijn:
    # $directory .= rand(1000000,9999999);

    # Kijk eerst of het bestand al dan niet bestaat (map):

    if(!file_exists($directory)) {
    
        # Maak de directory, voor meerdere mappen:
        mkdir($directory, 0, true);    
        # Voor een map:
        mkdir($directory);
        
        # Laat alleen mensen toe om de foto's te zien:
        chmod($directory, 0644);
    }

    # Als het al bestaat:
    else {
        echo 'De map bestaat al!';
    }

    
    # Wanneer de map gemaakt is en dat succesvol verlopen is, zul je dit samen
    # met de info van het huis in een database moeten stoppen.
    # Wanneer je dan iemand een nieuwe foto laat toevoegen, haal je gewoon
    # de locatie op waar de map zich bevind en kun je gewoon met dit:
    # move_uploaded_file($tmp_name, $directory.$pictureName); de bestanden uploaden
    # naar de juiste directory.
    
    # $tmp_name is bijvoorbeeld: $_FILES['picture']['tmp_name'] en
    # $pictureName is gewoon de naam van je foto, maak zeker dat alle niet gewone
    # tekens geschrapt worden!
    
    # En check de foto's of andere bestanden ook eerst goed voordat je ze upload...

    
    
?>
Gewijzigd op 05/01/2012 04:20:19 door
 
- SanThe -

- SanThe -

05/01/2012 03:01:53
Quote Anchor link
Je kan beter checken op welke characters je wél toestaat. Nu kan er nog steeds rommel tussen zitten.
 

05/01/2012 04:13:04
Quote Anchor link
@SanThe
Ik heb het nu alpha numeriek gemaakt. Maar ik deed dat eerst niet omdat je anders geen onderliggende mappen kon aanmaken.

Maar ik heb er even vlug een preg_replace aan toegevoegd zodat dat wel kan!

@Daan C
Dus normaal zou het nu toch wel veilig moeten zijn. Natuurlijk weet ik niet hoe je je bestanden controleert wanneer je ze opslaat enzovoort!
Gewijzigd op 05/01/2012 04:13:50 door
 
Daan C

Daan C

06/01/2012 16:06:48
Quote Anchor link
thx, ziet er netjes uit hoor !
Gewijzigd op 07/01/2012 01:58:11 door Daan C
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.