Jeg poster lige hele koden, hvis det er til at overskue... $_POST[userid] bliver taget med fra min html form, for at skrive brugerens id i min database sammen med de filer han uploader. Brugerens id er inden da hentet fra en session via include_once i toppen af min html form.
her er hele koden fra min upload_souce.php:
<?php
/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:
*
*
http://www.webcafe.dk/artikler/php/upload/*/
/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "./upload";
/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "30";
/**
* Checker PHP-version
*/
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}
/**
* Udligner forskellene mellem 4.1.x og 4.0.x
* Bemaerk, at disse ikke er "superglobals"
*/
if($minor < 1) {
$_FILES = $HTTP_POST_FILES;
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}
if($_FILES["upfil"]["size"] > 0) {
/**
* Hvis der er en fil, saa uploader vi den.
*
* Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
*/
$fra = $_FILES["upfil"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
/**
* Checker lige om filen er for stor til at vi vil acceptere den.
* Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
* situation, at fejlmeldingen siger, at filen er for stor, men angiver
* samme stoerrelse for filen og den oevre graense.
*/
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
die("Desværre - filen er for stor. Vi accepterer kun " .
$konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
ceil($fil_stoerrelse) . "kb");
}
if (!file_exists($til))
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $til))
{
break;
}
else
{
}
}
else
{
echo ('<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <!-- Vesteuropæisk tegnsæt -->
<title>Webmaleri.dk</title>
<link rel="stylesheet" type="text/css" href="../webmaleri.css"> <!-- overordnet design til webmaleri.dk i css fil -->
</head>
<body>
<div id="topbar"><h1>Webmaleri.dk</h1>
<hr class="toplinje" />
</div>
<div id="menu"
<p>
<a class="mlink" style="display:block;padding:5px;" href="index.php">Gå til Forsiden</a>
<a class="mlink" style="display:block;padding:5px;" href="upload.php">Forsøg igen...</a>
</p>
</div>
<div id="indhold">
<h2>Velkommen til Webmaleri.dk</h2>
<br />
<br />
<b>Der findes desværre allerede en fil med samme navn - Vær venlig at give filen et andet navn.</b>
<br />
<br />
<br />
<b>Klik <a href="upload.php">her</a> for at forsøge igen</b>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<div id="footer">
<h1>Her er bundlinjen</h1>
</div>
</body>
</html>
');
exit;
}
if(function_exists("move_uploaded_file")) {
move_uploaded_file($fra, $til);
} //else {
//copy($fra, $til);
//}
if (function_exists("move_uploaded_file")) {
$server = "xxxxxxx";
$bruger = "xxxxx";
$kodeord = "xxxxxx";
$database = "xxxxx";
$conn = mysql_connect("$server", "$bruger", "$kodeord");
mysql_select_db("$database");
//Så går vi igang med mysql
$storrelse = $_FILES["upfil"]["size"];
$type = $_POST["billedtype"];
$userid = $_POST["brugerid"];
$beskrivelse = $_POST["descr"];
$navn = $_FILES["upfil"]["name"];
$tabel = "filer";
$sti = $konfiguration["upload_bibliotek"];
$dimension = $_POST["dimension"];
$filtype = $_FILES["upfil"]["type"];
$insertSQL = "insert into $tabel (bill_sti, descr, name, dimension, type, filetype, size, userid)
values ('$sti', '$beskrivelse', '$navn', '$dimension', '$type', '$filtype', '$storrelse', '$userid')";
mysql_query($insertSQL) or die (mysql_error());
mysql_close();
}
header("Location: " . $_SERVER["PHP_SELF"]);
exit;
} else {
/**
* Intet tegn paa upload, saa vi viser bare listen over filer
* og HTML-formularen til nye uploads.
*/
$indhold = listFiler($konfiguration["upload_bibliotek"]);
$indhold .= bygFormular($_SERVER["PHP_SELF"]);
$output = bygSide("Webmaleri.dk", $indhold);
}
/**
* Skriver ud til browseren
*/
echo $output;
exit;
/**************************************************\
** Hjaelpefunktioner **
\**************************************************/
function bygSide($titel, $indhold, $user) {
/**
* Pakker indholdet ind i lidt formalia
*/
return '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <!-- Vesteuropæisk tegnsæt -->
<title>Webmaleri.dk</title>
<link rel="stylesheet" type="text/css" href="../webmaleri.css"> <!-- overordnet design til webmaleri.dk i css fil -->
</head>
<body>
<div id="topbar"><h1>Webmaleri.dk</h1>
<hr class="toplinje" />
</div>
<div id="menu"
<p>
<a class="mlink" style="display:block;padding:5px;" href="../index.php">Forside</a>
<a class="mlink" style="display:block;padding:5px;" href="upload.php">Upload Malerier</a>
<a class="mlink" style="display:block;padding:5px;" href="side3.htm">Til side 3</a>
<a class="mlink" style="display:block;padding:5px;" href="ny_kategori/index.htm">Til anden kategori</a>
<a class="mlink" style="display:block;padding:5px;" href="
http://www.server.dk/fremmed.htm">Til en andens side</a>
<a class="mlink" style="display:block;padding:5px;" href="index.php">Login / Din Konto</a>
<a class="mlink" style="display:block;padding:5px;" href="index.php?logaf=true\">Log ud</a></a>
</p>
</div>
<div id="indhold">
<h2>Velkommen til Webmaleri.dk</h2>
<br />
<b>Hej ' . $user . '<br><br>Dit maleri blev korrekt tilføjet til vores galleri.</b>
<br />
' . $indhold . '
</div>
<div id="footer">
<h1>Her er bundlinjen</h1>
</div>
</body>
</html>
';
}
function bygFormular($action) {
$formular = '<form action="upload_source.php" method="post" enctype="multipart/form-data">
<b>Maleri til upload:</b>
<input type="file" name="upfil" size="50" />
<br />
<br />
<b>Beskrivelse:</b>
<br />
<TEXTAREA NAME="descr" COLS=75 ROWS=20></TEXTAREA>
<br />
<br />
<b>Maleri Type:</b><br />
Acryl<input type="radio" name="billedtype" value="Acryl" checked>
Olie<input type="radio" name="billedtype" value="Olie">
Pastel<input type="radio" name="billedtype" value="Pastel">
Blyant<input type="radio" name="billedtype" value="Blyant">
<br />
<b>Maleriets ydre mål i cm.</b><input type="text" name="dimension" value="100x200">
              <input type="submit" value="Gem Maleri..." />
' .print $_POST["brugerid"] . '</form>';
return $formular;
}
function listFiler($bibliotek) {
if($bib = @opendir($bibliotek)) {
/**
* Denne syntaks er forklaret i PHP-manualen:
*
http://www.php.net/manual/en/function.readdir.php */
while (false !== ($fil = readdir($bib))) {
if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
$fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
}
}
closedir($bib);
if(is_array($fil_liste)) {
$liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
} else {
$liste = "<li>Ingen filer på lager</li>";
}
return "<h3>Dine malerier på Webmaleri.dk:</h3><ul>" . $liste . "</ul>";
} else {
die("Kunne ikke åbne biblioteket: " . $bibliotek);
}
}
?>