mkdir probleem
Het script werkt prima maar ik wil dat hij een nieuwe map aanmaakt in het uploadpath
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
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
<html>
<head>
</head>
<body>
<form action="" name="form1.php" method="post" enctype="multipart/form-data">
UPLOAD:
<input type="file" name="uploaded" id="uploaded"/><br/>
<input type="text" name="map" id="map"/><br/>
<input type="submit" name="submit" id="submit"/>
</form>
</body>
</html>
<?php
$map = $_POST['map'];
$target = "upload/".mkdir($map, 0777)."/"; //hier doe ik iets fout met mkdir
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(isset($_POST['submit']))
{
if ($uploaded_size > 350000)
{
echo "Your file is too large.<br>"; $ok=0;
}
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
?>
<head>
</head>
<body>
<form action="" name="form1.php" method="post" enctype="multipart/form-data">
UPLOAD:
<input type="file" name="uploaded" id="uploaded"/><br/>
<input type="text" name="map" id="map"/><br/>
<input type="submit" name="submit" id="submit"/>
</form>
</body>
</html>
<?php
$map = $_POST['map'];
$target = "upload/".mkdir($map, 0777)."/"; //hier doe ik iets fout met mkdir
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(isset($_POST['submit']))
{
if ($uploaded_size > 350000)
{
echo "Your file is too large.<br>"; $ok=0;
}
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
?>
alvast bedankt (:
Hier staat dus in feite:
$target = "upload/".true."/";
of
$target = "upload/".false."/";
Beetje onzinnig lijkt mij.
Verder een map aanmaken met de ongecontroleerde gegevens uit een formulier is natuurlijk alles behalve veilig.
SanThe Nvt op 28/09/2010 11:50:24:
Verder een map aanmaken met de ongecontroleerde gegevens uit een formulier is natuurlijk alles behalve veilig.
weet ik maar ik wilde eerst mijn upload werkend krijgen.
Weet je misschien hoe ik het wel voor elkaar krijg om een map aan te maken met de naam die ik in het invoerveld invoer en daar dan het bestand in te uploaden?
Bedankt voor je reactie
Met mkdir(), maar niet zoals jij het doet. Lees de omschrijving op php.net.
Lijkt me inderdaad slim om eerst de omschrijving te lezen voordat je dit post.
Toevoeging op 28/09/2010 13:00:53:
OPLOSSING:
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
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
<html>
<head>
</head>
<body>
<form action="" name="form1.php" method="post" enctype="multipart/form-data">
UPLOAD:
<input type="file" name="uploaded" id="uploaded"/><br/>
<input type="text" name="map" id="map"/><br/>
<input type="submit" name="submit" id="submit"/>
</form>
</body>
</html>
<?php
$map = $_POST['map'];
$path = "upload/$map";
@mkdir("$path", 0777);
$target = "$path/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(isset($_POST['submit']))
{
if ($uploaded_size > 350000)
{
echo "Your file is too large.<br>"; $ok=0;
}
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
?>
<head>
</head>
<body>
<form action="" name="form1.php" method="post" enctype="multipart/form-data">
UPLOAD:
<input type="file" name="uploaded" id="uploaded"/><br/>
<input type="text" name="map" id="map"/><br/>
<input type="submit" name="submit" id="submit"/>
</form>
</body>
</html>
<?php
$map = $_POST['map'];
$path = "upload/$map";
@mkdir("$path", 0777);
$target = "$path/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(isset($_POST['submit']))
{
if ($uploaded_size > 350000)
{
echo "Your file is too large.<br>"; $ok=0;
}
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
?>
misschien dat iemand er nog iets aan heeft.
Tim Fendt op 28/09/2010 12:28:17:
Even een paar puntjes:
Html is niet valid.
Geen enkele contrôle op $_POST['map'].
$Vars tussen quotes.
Error onderdrukking door gebruik van @.
Als de file groter is dan 350000 wordt die toch geaccepteerd.
Tevens geeft dit script 2 Notices:
Notice: Undefined index: map in ....
Notice: Undefined index: uploaded ....
Gewijzigd op 28/09/2010 13:18:49 door - SanThe -
Hopelijk is het nu goed.
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
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Upload script</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<p>
<input type="file" name="uploaded" id="uploaded" /><br />
<input type="text" name="map" id="map" /><br />
<input type="submit" name="submit" id="submit" />
</p>
</form>
</body>
</html>
<?php
$map = $_POST['map'];
$path = "upload/".$map."";
$ok = 1;
if(isset($_POST['submit']))
{
if ($uploaded_size > 350000) //als het bestand groter is dan 350kb
{
echo "Het bestand is te groot.";
$ok=0;
}
if ($ok==0)
{
Echo "Uploaden mislukt.";
}
else
{
if(!file_exists($path))
{
mkdir($path, 0777);
$target = $path."/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
}
else
{
$target = $path."/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
}
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "Het bestand is succesvol toegevoegd";
}
else
{
echo "Uploaden mislukt.";
}
}
}
?>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Upload script</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<p>
<input type="file" name="uploaded" id="uploaded" /><br />
<input type="text" name="map" id="map" /><br />
<input type="submit" name="submit" id="submit" />
</p>
</form>
</body>
</html>
<?php
$map = $_POST['map'];
$path = "upload/".$map."";
$ok = 1;
if(isset($_POST['submit']))
{
if ($uploaded_size > 350000) //als het bestand groter is dan 350kb
{
echo "Het bestand is te groot.";
$ok=0;
}
if ($ok==0)
{
Echo "Uploaden mislukt.";
}
else
{
if(!file_exists($path))
{
mkdir($path, 0777);
$target = $path."/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
}
else
{
$target = $path."/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
}
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "Het bestand is succesvol toegevoegd";
}
else
{
echo "Uploaden mislukt.";
}
}
}
?>
Maar toch nog steeds Notice: Undefined index: map in .... regel 19
Dit:
Code (php)
Kan ook zo:
Code (php)
En dit:
Code (php)
Kan ook zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if(!file_exists($path))
{
mkdir($path, 0777);
}
$target = $path."/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
?>
if(!file_exists($path))
{
mkdir($path, 0777);
}
$target = $path."/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
?>