Problemer med opload af nyheder m billede
Hej eksperterJeg har et opload script til nyheder, med navn, tekst og billede osv. Det går dog i kludder hvis ikke man vælger et billede, jeg tror måske det er noget al for gammel kode jeg anvender?
Jeg er selv igang herunder, men med nedenstående kode opretter den fint alt, dog uden billede selvom man vælger sådan et... Help anyone? Måske noget er nemmere?
------------nyhederopret.php---------------------------
<form enctype="multipart/form-data" action="nyhederopret_indsaet.php" method="post">
<br>
<table width="501" border="0" cellpadding="2" cellspacing="2">
<tr>
<td width="58" align="left">Navn: </td>
<td width="429" align="left"><input type="text" name="navn" value="" size="60" maxlength="40"></td>
</tr>
<tr>
<td align="left" valign="top">Tekst:</td>
<td align="left"><textarea name="beskrivelse" cols="45" rows="8"></textarea></td>
</tr>
<tr>
<td align="left">Billede:</td>
<td align="left"><input name="fil" type="file" size="45"></td>
</tr>
<tr>
<td> </td>
<td align="left">
<input type="submit" value="Opret nyhed"> </td>
</tr>
</table>
</form>
---------------------------------------------------------------
----------------nyhederopret_indsaet.php-----------------------
<?
ini_set("memory_limit","12M");
$mydb = XXX OK
if($_POST[fil]=="") {
$navn = $_POST['navn'];
$beskrivelse = $_POST['beskrivelse'];
$query = "INSERT into `news`
SET
`news_navn` = '".$navn."',
`news_beskrivelse` = '".$beskrivelse."'";
mysql_query($query) or die(mysql_error());
header("Location: nyheder.php");
exit();
}
elseif($_POST[fil]!=="") {
//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];
//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));
//laver lige et par variabler :-)
$tid = time();
//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "nyhed-" . $tid . "." . $ext;
//Her er vores destination for det store billede
$dst = "nyheder/" . $nytNavn;
//her uploades det store billede:
copy($src, $dst);
//billed-funktioner:
$image = $dst;
//hvis billedet eksisterer
if(file_exists($image)) {
//billedet eksisterer
$foto = 1;
//find størrelsen
$imgsize = getimagesize($image);
//hvis bredden er mere end 200px
if($imgsize[0] > 100) {
//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);
//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);
//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");
//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));
//lav output til mappen /tmp/
ImageJpeg($dst_img, "nyheder/thumbnail/" . $nytNavn);
//hvis bredden ikke er over 200px
} else {
//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};
//sæt url'en til billedet
$imgurl = "nyheder/thumbnail/" . $nytNavn;
} else {
//foto findes ikke
$foto = 0;
};
//Her ligges oplysningerne ind databasen – huske at connecte til den!
$navn = $_POST['navn'];
$beskrivelse = $_POST['beskrivelse'];
$billede = $dst;
$query = "INSERT into `news`
SET
`news_navn` = '".$navn."',
`news_beskrivelse` = '".$beskrivelse."',
`billede` = '".$dst."',
`thumbnail` = '".$imgurl."'";
mysql_query($query) or die(mysql_error());
header("Location: nyheder.php");
exit();
}
?>