input file wordt niet herkend?
Hallo allemaal,
ik heb een simpel formuliertje met een verwerkingsscript erachter dat plaatjes upload, tenminste dat is de bedoeling...
Nu is het zo dat na het submitten van het formulier de eerste stap van het if/else-statement wordt overgeslagen, ookal heb ik een afbeelding geselecteerd. Het bestand komt dus niet door de is_file() controle heen.
Naar mijn weten zit er toch echt geen fout in het script, iemand enig idee wat ik fout doe?
Alvast bedankt =)
Thomas
//edit: de overige data wordt wel goed weggeschreven
ik heb een simpel formuliertje met een verwerkingsscript erachter dat plaatjes upload, tenminste dat is de bedoeling...
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
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
<?php
$dir = str_replace(basename(__FILE__), "", __FILE__)."pictures/nieuws/";
//Uploaden
if(isset($_POST['upload'])) {
if(isset($_POST['titel'], $_POST['bericht']) AND !empty($_POST['titel']) AND !empty($_POST['bericht'])) {
if(isset($_FILES['plaatje']['tmp_name']) AND is_file($_FILES['plaatje']['tmp_name'])) {
if(is_uploaded_file($_FILES['plaatje']['tmp_name'])) {
move_uploaded_file($_FILES['plaatje']['tmp_name'], $dir.$_FILES['plaatje']['name']);
$foto_pad = str_replace(" ", "%20", $_FILES['plaatje']['name']);
$sql_insert = "INSERT INTO nieuws (id, datum, titel, bericht, foto) VALUES ('', '".date("d-m-Y")."', '".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['bericht'])."', '".$foto_pad."')";
$sql_insert_result = mysql_query($sql_insert) or die ("Er is iets fout gegaan met het toevoegen van het nieuwsbericht aan de database.");
header("Location: nieuws_overzicht.php");
}
else {
echo "Er is iets fout gegaan bij het uploaden van de foto.";
}
}
else {
$sql_insert = "INSERT INTO nieuws (id, datum, titel, bericht) VALUES ('', '".date("d-m-Y")."', '".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['bericht'])."')";
$sql_insert_result = mysql_query($sql_insert) or die ("Er is iets fout gegaan met het toevoegen van het nieuwsbericht aan de database.");
header("Location: nieuws_overzicht.php");
}
}
else {
"U heeft neit alle velden ingevuld!";
}
}
else {
?>
<b>Nieuws toevoegen</b><br>
<form enctype="multipart/form-data" action="nieuws_nieuw.php" method="post">
Titel bericht:<br>
<input type="text" size="50" name="titel"><br>
Bericht:<br>
<textarea cols="70" rows="15" name="bericht"></textarea><br><br>
Foto (optioneel):<br>
<input type="file" name="plaatje"><br>
<input type="submit" name="upload" value="Toevoegen">
</form>
<br>
<?php
}
?>
$dir = str_replace(basename(__FILE__), "", __FILE__)."pictures/nieuws/";
//Uploaden
if(isset($_POST['upload'])) {
if(isset($_POST['titel'], $_POST['bericht']) AND !empty($_POST['titel']) AND !empty($_POST['bericht'])) {
if(isset($_FILES['plaatje']['tmp_name']) AND is_file($_FILES['plaatje']['tmp_name'])) {
if(is_uploaded_file($_FILES['plaatje']['tmp_name'])) {
move_uploaded_file($_FILES['plaatje']['tmp_name'], $dir.$_FILES['plaatje']['name']);
$foto_pad = str_replace(" ", "%20", $_FILES['plaatje']['name']);
$sql_insert = "INSERT INTO nieuws (id, datum, titel, bericht, foto) VALUES ('', '".date("d-m-Y")."', '".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['bericht'])."', '".$foto_pad."')";
$sql_insert_result = mysql_query($sql_insert) or die ("Er is iets fout gegaan met het toevoegen van het nieuwsbericht aan de database.");
header("Location: nieuws_overzicht.php");
}
else {
echo "Er is iets fout gegaan bij het uploaden van de foto.";
}
}
else {
$sql_insert = "INSERT INTO nieuws (id, datum, titel, bericht) VALUES ('', '".date("d-m-Y")."', '".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['bericht'])."')";
$sql_insert_result = mysql_query($sql_insert) or die ("Er is iets fout gegaan met het toevoegen van het nieuwsbericht aan de database.");
header("Location: nieuws_overzicht.php");
}
}
else {
"U heeft neit alle velden ingevuld!";
}
}
else {
?>
<b>Nieuws toevoegen</b><br>
<form enctype="multipart/form-data" action="nieuws_nieuw.php" method="post">
Titel bericht:<br>
<input type="text" size="50" name="titel"><br>
Bericht:<br>
<textarea cols="70" rows="15" name="bericht"></textarea><br><br>
Foto (optioneel):<br>
<input type="file" name="plaatje"><br>
<input type="submit" name="upload" value="Toevoegen">
</form>
<br>
<?php
}
?>
Nu is het zo dat na het submitten van het formulier de eerste stap van het if/else-statement wordt overgeslagen, ookal heb ik een afbeelding geselecteerd. Het bestand komt dus niet door de is_file() controle heen.
Naar mijn weten zit er toch echt geen fout in het script, iemand enig idee wat ik fout doe?
Alvast bedankt =)
Thomas
//edit: de overige data wordt wel goed weggeschreven
Gewijzigd op 01/01/1970 01:00:00 door Thomas M
Gesponsorde koppelingen:
Er zijn nog geen reacties op dit bericht.



