Uppladdnings problem(PHP)
När jag ska ladda upp ett foto till en mapp på servern och även lägga in filnamnet i databasen men när den ska lägga in filnamnet i databasen så lägger den bara in 0. Den laddar upp bilden som den ska, vad är det för fel?
<?php
//Kod för att lägga till genom ett forumlär
if(isset($_GET['addnews'])) {
?>
Lägg till en nyhet<br />
<form action='news.php?addnews&add' id='add' method='post' enctype='multipart/form-data'>
<b>Rubrik:</b><br />
<input type='text' name='rubrik' /><br />
<b>Bild:</b><br />
Fil: <input type="file" name="uplfile">
<b>Innehåll:</b><br />
<textarea name='text' cols='50' rows='15'></textarea><br />
<input type='submit' value='Lägg till nyhet' />
</form>
<?php
//Då ?addnews=$id&add står i adressfältet kommer följande kod att laddas
if(isset($_GET['add'])) {
//Lägger in dagens datum i variabeln $datum som ex 1/9-04
$date = date('j/n-y H:i');
//Kod för att ladda upp bild
// Mappen där filerna ska hamna
$upload_dir = 'files/';
// De tillåtna filtyperna, separerade med komman, utan mellanrum
$filetypes = 'jpg,gif,png';
// Den största tillåtna storleken (1024 kB)
$maxsize = (1024*1024);
// Kontrollera att det angavs en fil
if(empty($_FILES['uplfile']['name']))
die('Ingen fil har valts');
// Kontrollera storleken
if($_FILES['uplfile']['size'] > $maxsize)
die('Filen du valde är för stor. Maxstorleken är '.(string)($maxsize/1024).' KB.');
// Kontrollera filtypen
$types = explode(',', $filetypes);
$file = explode('.', $_FILES['uplfile']['name']);
$extension = $file[sizeof($file)-1];
if(!in_array(strtolower($extension), $types))
die('Du har en felaktig filtyp. Endast .jpg, .gif och .png är tillåtet!');
// Generera unikt filnamn
$bokstav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6');
$thefile = $_FILES['uplfile']['name'];
while (file_exists($upload_dir.$thefile)) { $img = $bokstav[rand(0, count($bokstav)-1)].$thefile; }
// Flytta filen rätt
if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir.$thefile)) {
echo 'Filen laddades upp!';
/*
Uppladdningen lyckades.
Här kan man även lägga eventuell kod för t.ex. databashantering.
Filnamnet ligger i $thefile.
Ytterliggare fält i formuläret får du som vanligt med $_POST
*/
} else {
echo 'Ett fel uppstod och filen kunde inte laddas upp.';
/*
Uppladdningen misslyckades.
*/
}
//SQL kod för att lägga in i databasen
mysql_query("INSERT INTO news (rubrik, date, text, photo) values ('" .$_POST['rubrik']. "', '$date', '" .$_POST['text']. "', '$thefile')") or exit(mysql_error());
//Skickar dig vidare till det inskrivna efter location:
header('location: news.php');
}
}