mappen ophalen en in een select zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kjell Baertsoen

Kjell Baertsoen

25/06/2015 11:22:17
Quote Anchor link
Dag iedereen!;)

Een tijdje geleden hebben jullie mij geholpen met een stukje php dat werkte perfect!
Nu wil ik een <select> waar de mappen instaan van de ftp. Zonder dat ik ze zelf moet inschrijven. als ik een map wegdoe in de ftp. staat deze automatisch niet meer tussen 'select'.
Ik heb geprobeerd met 'dirname' maar het lukt niet wie kan mij helpen?

Je kunt zien dat ik geprobeerd heb.
Hopelijk kunnen jullie mij helpen.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
             include "config.php";
$db_instellingen = mysql_connect($dbhost,$dbuname,$dbpass);
    mysql_select_db($dbname) or die($dberror);
    $query_instellingen = "SELECT * FROM Instellingen";
    $result_instellingen = mysql_query($query_instellingen);
    $instellingen = mysql_fetch_array($result_instellingen);
    $werkjaar = $instellingen[werkjaar];
    $map = '../media/werkjaar/'.$werkjaar. '/'  ;


// Controleren of het formulier verzonden is
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    $target_dir = '';
    if(!empty($_POST['map']) && !empty($_POST['eigen_map']))
    {

        echo "<div class='alert alert-danger' role='alert'>Er mag slechts 1 optie gekozen zijn (map of eigen map)</div>"; // Beide ingevuld
    }
    elseif(empty($_POST['map']) && empty($_POST['eigen_map']))
    {

        echo "<div class='alert alert-danger' role='alert'>Er moet minimaal 1 optie gekozen zijn (map of eigen map)</div>"; // Niks ingevuld
    }
    elseif(empty($_POST['map']) && !empty($_POST['eigen_map']))
    {

        if(!file_exists($_POST['eigen_map']))
        {

    
            global $map;
            mkdir  (''. $map . '/' .$_POST['eigen_map']  , 0777, true ); // Map aanmaken, met rechten 0777 (Let op: Aanpassen indien anders gewenst)
            echo "<div class='alert alert-succses' role='alert'>Map aangemaakt! </div>";

            
        
        }

     $target_dir = ''. $map . '/'. $_POST['eigen_map'];

    }
    elseif(!empty($_POST['map']) && empty($_POST['eigen_map']))
    {

        $target_dir = $_POST['map'];
    }

    if(!empty($target_dir))
    {

        if($_FILES["fileToUpload"]["name"] != '')
        {

            // Bestand upload script,
            $target_file = $target_dir . '/' . basename($_FILES["fileToUpload"]["name"]);
            $uploadOk = 1;
            $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
            
            // Check if file already exists
            if(file_exists($target_file))
            {

                echo "<div class='alert alert-danger' role='alert'>Sorry, file already exists.</div>";
                $uploadOk = 0;
            }

            // Check if $uploadOk is set to 0 by an error
            if($uploadOk == 0)
            {

                echo "<div class='alert alert-danger' role='alert'><strong>sorry,</strong> maar de foto/'s zijn niet upgeload.</div> "; }
            
            else
            {
                // if everything is ok, try to upload file
                if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
                {

                    echo "Foto/'s ". basename( $_FILES["fileToUpload"]["name"]). " zijn geüpload.";
                }

                else
                {
                    echo "<div class='alert alert-danger' role='alert'>Sorry, there was an error uploading your file.</div>";
                }
            }
        }
    }
}


    $mapop = dirname ($map) ;
    echo $mapop;
    
    
    
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
  <p>Selecteer een map:
    <select>
      <option value="$mapop" selected="selected"></option>
    </select>
<br />
<br />
Of vul een nieuwe map in:
<form class="form-horizontal">
  <div class="form-group">
    <input type="text"  class="form-control"name="eigen_map" placeholder="20.05.2015.Lokaalavond " maxlength="20" />
    </div>
  </div>
  <p>Datum Activiteit + Titel.</p>
  <p>Bv. Jaar.Maand.Dag.Titel  </p>

    <br />
    <input type="file"  name="fileToUpload" id="fileToUpload" >
   <p> <button type="submit"  class="btn btn-success"name="versturen" value="Versturen">Versturen</button></p>
  </p>
  <p> </p>
</form>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 25/06/2015 12:10:45 door - Ariën -
 
PHP hulp

PHP hulp

26/04/2024 01:10:28
 

25/06/2015 12:03:56
Quote Anchor link
Weet niet waar je het project voor gebruikt maar mysql is deprecated in PHP 5.5 dacht ik.
vervang dit voor mysqli.

Daarnaast raadt ik je aan om de mappen op een OOP manier uit te lezen ipv deze procedurele meuk.
 
Kjell Baertsoen

Kjell Baertsoen

25/06/2015 12:37:37
Quote Anchor link
het gaat om een systeem voor mensen die ingelogd zijn op de site en foto's kunnen uploaden op de site.
Je kunt een map zelf maken of kiezen. Als je een map hebt gemaakt hebt moet dus tussen de lijst staan van kies een map. als ik dan een map verwijder van de ftp moet die ook weg zijn uit de lijst.
Ik dacht aan dirname of readdir maar het lukt niet
Gewijzigd op 25/06/2015 12:38:52 door Kjell Baertsoen
 
Ward van der Put
Moderator

Ward van der Put

25/06/2015 13:02:20
Quote Anchor link
Je moet eerst met opendir() een handle naar de directory openen.
Daarna pas kun je de directory lezen met readdir().
 
Thomas van den Heuvel

Thomas van den Heuvel

25/06/2015 13:45:26
Quote Anchor link
Sidenote: regel 26-35:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
        if(!file_exists($_POST['eigen_map']))
        {

    
            global $map;
            mkdir  (''. $map . '/' .$_POST['eigen_map']  , 0777, true ); // Map aanmaken, met rechten 0777 (Let op: Aanpassen indien anders gewenst)
            echo "<div class='alert alert-succses' role='alert'>Map aangemaakt! </div>";

            
        
        }

?>

Voer je daar niet de verkeerde controle uit? Je controleert of $_POST['eigen_map'] bestaat, en anders maak je $map/$_POST['eigen_map'] aan...
 
Kjell Baertsoen

Kjell Baertsoen

25/06/2015 23:35:13
Quote Anchor link
iemand die wat uitleg kan geven?
 
Andy Born

andy Born

26/06/2015 09:15:04
Quote Anchor link
je zou de volgende functie kunnen gebruiken om een array terug te krijgen van alle directories

Quote:
$path = "";
glob($path."*", GLOB_ONLYDIR);


http://php.net/manual/en/function.glob.php
Gewijzigd op 26/06/2015 09:15:33 door andy Born
 
Kjell Baertsoen

Kjell Baertsoen

26/06/2015 12:26:40
Quote Anchor link
ik heb nu dit gevonden op phphulp en dit werkt maar dit moet in mijn select geraken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php  //map openen
    if ($handle = opendir($map)) {
        //Bestanden ophalen uit map
        while (false !== ($file = readdir($handle))) {
        //Kijken of het bestand een extensie heeft
            $ext_file = substr(strrchr($file,''), 1);
        //Als het bestand geen extensie heeft de map weergeven
            if(empty($ext1)){
                echo "<option>$file</option>";
            }
        }
    }
?>
 
- Ariën  -
Beheerder

- Ariën -

26/06/2015 12:34:14
Quote Anchor link
De option heb je al. nu nog de select eromheen zetten.
 
Kjell Baertsoen

Kjell Baertsoen

26/06/2015 13:18:22
Quote Anchor link
als ik er select voor zet krijg ik heel de lijst met mappen naast elkaar in elk een afzonderlijke lijst
 
- SanThe -

- SanThe -

26/06/2015 13:22:10
Quote Anchor link
De select hoort buiten de while te staan en niet er in.
 
Kjell Baertsoen

Kjell Baertsoen

26/06/2015 14:06:03
Quote Anchor link
ik heb dit gedaan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<select><option value='$file'>$file</option></select>
 
- SanThe -

- SanThe -

26/06/2015 14:10:14
Quote Anchor link
Ja dat dacht ik al.

Dus doe dit:
- SanThe - op 26/06/2015 13:22:10:
De select hoort buiten de while te staan en niet er in.
 



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.