mappen ophalen en in een select zetten
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)
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
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>
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!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 25/06/2015 12:10:45 door - Ariën -
vervang dit voor mysqli.
Daarnaast raadt ik je aan om de mappen op een OOP manier uit te lezen ipv deze procedurele meuk.
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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>";
}
?>
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...
iemand die wat uitleg kan geven?
Quote:
$path = "";
glob($path."*", GLOB_ONLYDIR);
glob($path."*", GLOB_ONLYDIR);
http://php.net/manual/en/function.glob.php
Gewijzigd op 26/06/2015 09:15:33 door andy Born
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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>";
}
}
} ?>
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>";
}
}
} ?>
De option heb je al. nu nog de select eromheen zetten.
als ik er select voor zet krijg ik heel de lijst met mappen naast elkaar in elk een afzonderlijke lijst
De select hoort buiten de while te staan en niet er in.
Dus doe dit:
- SanThe - op 26/06/2015 13:22:10:
De select hoort buiten de while te staan en niet er in.