Ik heb het onderstaande script gemaakt voor een opdracht voor school..In de database krijg ik netjes de bestandsnaam te staan, maar met geen mogelijkheid krijg ik het bestand in de betreffende map geplaatst.
Ben al dagen bezig om het werkend te krijgen maar ik kom er niet uit.

Wie kan mij op weg helpen?



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="de persoonlijke site van Leon Klaassen" />
<meta name="keywords" content="Studie, bussiness &amp; ICT, Leon Klaassen, Fontys, HBO, deeltijd" />
<title>Vriendenboek</title>
<link href="vriendenboek2.css" rel="stylesheet" type="text/css" />
<style type="text/css">h1 {
font-size: 24px;
color: #000;
}
</style>
<script
src="jquery-183.js">
</script>

<script>
$(document).ready(function(e) {
$("form").hide();
$("form").show(6000);
$("button").click(function(e) {
$("form").hide(5000);
$("form").show(2000);
});
});
</script>
</head>

<body>
<div id="header">
</div>
<div id="container">



</div>

<div id="content">
<H1> Toevoegen auto</H1>


<form action="" method="POST" name="auto toevoegen">
<p>auto merk<br />
<input type="text" name="AUTO_MERK" value="..."/></p>
<p>Auto kleur<br />
<input type="text" name="AUTO_KLEUR" value="..."/></p>
<p> type van de auto<br /><input type="text" name="AUTO_TYPE" value="..."/></p>

<?php
$CKEditor->editor("id", "Hier je tekst");
?>
<form method="POST" action="" enctype="multipart/form-data">
Bestand: <input type="file"file name="bestand"value="..."><br><br>
<input type="submit"submit name="Uploaden" value="Uploaden"></form>
<button> verberg </button>

<?PHP

// In welke map komen de bestanden ? ( zorg dat deze de permissies 777 krijgt )
$map = "uploadbestanden/";

// Wat is de maximale groote van het bestand in bytes ( 1 kb = 1000 bytes )
$max = "10000";

// Welke extensies kunnen er worden geupload ( als alles mag dan niks invullen )
$ext = "jpg gif png";

// Hieronder niks aanpassen

// Controleren

if ($Uploaden){


if (!$bestand)
print ("Geef een bestand op!");
else{

// Bestands naam opvragen
$bestand2 = explode("\\", $bestand_name);
$laatste = count($bestand2) - 1;
$bestand2 = "$bestand2[$laatste]";

// Extensie van bestand opvragen
$bestand3 = explode(".", $bestand2);
$laatste = count($bestand3) - 1;
$bestand3 = "$bestand3[$laatste]";
$bestand3 = strtolower($bestand3);

// Toegestaande extensies opvragen

$ext = strtolower($ext);
$ext = explode(" ", $ext);
$aantal = count($ext);

for ($tel = 0;$tel < $aantal; $tel++){
if ($bestand3 == $ext[$tel]){
$extfout = "nee";
}



}

if (!$extfout){
print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");
}
else
{
if ($bestand_size > $max)
print ("Het bestand \"$bestand2\" is groter dan $max bytes!");
else
{

// Opslaan van het bestand


copy($bestand, "$map$bestand2");
print ("Het bestand \"$bestand2\" is met succes geupload!");


}

}

}
}


// Upload formulier

print ("<form method=post action=auto_toevoegen.php enctype=multipart/form-data>
Bestand: <input type=file name=bestand><br><br>
<input type=submit name=Uploaden value=Uploaden></form>");



if (!isset($_POST['Auto toevoegen']))

$merk = $_POST['AUTO_MERK'];
$kleur=$_POST['AUTO_KLEUR'];
$type=$_POST['AUTO_TYPE'];
$beschrijving=$_POST['id'];
$bestand2=$_POST['bestand'];
$merk = strip_tags($merk); // HTML-tags en PHP-code verwijderen
$kleur = strip_tags($kleur); //HTML-tags en PHP-code verwijderen
$bestand2 = strip_tags($bestand2); // HTML-tags en PHP-code verwijderen
$type = strip_tags($type); //HTML-tags en PHP-code verwijderen





//query opstellen eerste regel db velden, 2e regel de waarden

$registerquery = mysql_query("INSERT INTO automerken (AUTO_MERK,AUTO_KLEUR, AUTO_TYPE, AUTO_beschrijving, AUTO_foto) VALUES('".$merk."','".$kleur."','".$type."', '".$beschrijving."', '".$bestand2."')");
if($registerquery)
{ //doe iets als het goed gaat

echo "<p>Auto toegevoegd</p>";
}
else
{ //doe iets als het fout gaat
echo "<h1>Foutmelding</h1>";
echo "<p>Auto kan niet toegevoegd worden</p>";
}
?>

<FORM ACTION="vriendenboek2.php" METHOD=GET>
<INPUT TYPE=submit VALUE="ga terug" NAME=foo>
</FORM>

<strong>



</strong>



<P></P>


</div>



</body>
</html>
* waarom komen die variablen $Uploaden en $bestand vandaan?
* je kan toegestane extensies beter in een array zetten dan hoeft je explode niet te gebruiken.
* variablen buiten quotes..
* kijk is naar move_uploaded_file
Om te beginnen staat er al een fout in je html:

Bestand: <input type="file"file name="bestand"value="...">

Maar nog belangrijker, heb je al van de superglobal $_FILES gehoord? Bestanden die worden geupload komen namelijk niet in de $_POST terecht, maar in $_FILES.
@RobertJan, je kan in het vervolg zulke dingen via PM melden bij het moderatie-team. Om dit in een topic te vragen aan de TS kan de sfeer soms verpesten, en dat willen we juist niet.

Ik wil Leon ook even vragen om [code] en [/code]-tags om zijn script te plaatse, zo wordt alles beter leesbaarder.


Het ziet er naar uit dat dit script behoorlijk oud is, uit 2000, vermoed ik. $Uploaden heeft geen waarde. Ik denk dat je het beste een recente tutorial over uploaden kan doornemen of een recent script kan zoeken.



@ Aar & Robert-Jan mijn excusus voor het aanmaken van een dubbele topic, ging iets fout met opslaan was niet bewust! heb nog gekeken hoe ik hem kon verwijderen.

allemaal bedankt voor de reacties, ik ga gewoon weer opnieuw beginnen, hebben jullie toevallig tips waar ik goede recente tutorials kan vinden?

ik weet niet wat er in je auto_toevoegen.php staat, maar er zou zoiets moeten staan:
<?php


$map = 'uploadbestanden/'; // map waar bestanden worden opgeslagen


if(isset($_FILES['bestand']) && strlen($_FILES['bestand']['name']) > 1) {
$map = $map . basename( $_FILES['bestand']['name']); // bestandsnaam

if(move_uploaded_file($_FILES['bestand']['tmp_name'], $map)) { //verplaatsen naar "uploadbestanden"
echo 'Bestand: <b>'. basename( $_FILES['bestand']['name']). '</b> is met success geupload'; // uploaden was successvol
}
else echo '<b>Bestand kon niet worden geupload</b>'; //uploaden mislukt
}
?>

Ik ben helemaal opnieuw begonnen, het bestand wordt netjes in de map geplaatst so far so good! nu wil ik de bestandsnaam in de database opnemen. Ik haal de bestandsnaam over met "$bestand=$_FILES['file']['name'];" Dan krijg ik de volgende melding op de query. Wat doe ik fout?

Parse error: syntax error, unexpected '$bestand' (T_VARIABLE) in D:\applicaties\wamp\www\iwp\Vriendenboek\uploadfile.php on line 71


<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 200000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
}
}
}
else
{
echo "Invalid file";
}




if (!isset($_POST['Upload']))

$merk = $_POST['AUTO_MERK'];
$kleur=$_POST['AUTO_KLEUR'];
$type=$_POST['AUTO_TYPE'];
$beschrijving=$_POST['AUTO_beschrijving'];
$bestand=$_FILES['file']['name'];
$merk = strip_tags($merk); // HTML-tags en PHP-code verwijderen
$kleur = strip_tags($kleur); //HTML-tags en PHP-code verwijderen
//$bestand = strip_tags($bestand); // HTML-tags en PHP-code verwijderen
$type = strip_tags($type); //HTML-tags en PHP-code verwijderen
$beschrijving = strip_tags($beschrijving); //HTML-tags en PHP-code verwijderen








//query opstellen eerste regel db velden, 2e regel de waarden

$registerquery = mysql_query("INSERT INTO automerken (AUTO_MERK,AUTO_KLEUR, AUTO_TYPE, AUTO_beschrijving, AUTO_foto) VALUES('".$merk."','".$kleur."','".$type."', '".$beschrijving."', '"$bestand"')");
if($registerquery)
{ //doe iets als het goed gaat

echo "<p>Auto toegevoegd</p>";
}
/ else
{ //doe iets als het fout gaat
echo "<h1>Foutmelding</h1>";
echo "<p>Auto kan niet toegevoegd worden</p>";
}
?>


[size=xsmall]Toevoeging op 07/01/2013 21:54:35:[/size]

Toch bedankt maar ik heb het gevonden was de puntjes vergeten bij "$bestand"

weer 3 uur van mijn leven naar puntjes gezocht;0)
je mist puntjes, kijk naar eens bij de voorgaande variabelen...
Ja had het al gezien! Morgen assessment dit was de laatste opdracht. Allemaal bedankt voor de hulp!

Reageren