Ola,

Ik krijg het maar niet voormekaar dat een plaatje daadwerkelijk uit een mao wordt verwijdert als deze geupdate wordt.
BIj het aanmaken wordt een random naam aangemaakt, dit zorgt gelijk voor wat verwarring denk ik bij het verwijderen ervan (?).

(lange code, voor het complete beeld..)




<?

if (!isset($_GET['id']))  
{   
    echo "Id niet gedefineerd";  
    exit;  
}  

else if(isset($_POST['upload']))  
{ 

$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$label  = $_POST['label'];	
$tekst  = $_POST['tekst'];


$ext= substr(strrchr($fileName, "."), 1); // extentie eruit halen
$naam = substr($fileName, 0, strrpos($fileName, '.'));  //  naam voor .extentie
$randName = $naam. '-' .substr(md5(rand() * time()), 0, 6); // random naam genereren
$newName  = $randName . '.' . $ext; // nieuwe naam + extentie
$filePath = $uploadDir . $newName; // path + nieuwe naam (+ extentie) 





//start the query 
$query = "UPDATE news SET label = '$label', tekst='$tekst', datum =  CURDATE()"; 
     
   

    if ($_FILES['userfile']['tmp_name'])
		{ 
			//// STAAT ER AL EEN BESTAND? --> VERWIJDEREN/////
			
				if( file_exists($uploadDir . $fileName ) )
			{    
			unlink($uploadDir . $fileName );

			} 
			
			//// EXTENTIE CHECK/////
			if(!in_array($ext,$allowed_filetypes))
			{
			echo '<font color="red" face=Verdana size=2>! Geen (goed) bestand geselecteerd. Upload een jpg, gif of png.</font></p>';
			$errors=1;
			}
			
			else
				{
				//// GROOTTE CHECK/////
				if ($fileSize > $max_filesize)
				{
				echo '<font color="red" face=Verdana size=2>! Bestand is te groot. Gebruik een bestand van max 800 KB.</font><p/>';
				$errors=1;
				}
				
				else {	
					// Check Height & Width
					list($width, $height, $type, $w) = getimagesize($_FILES['userfile']['tmp_name']);
					if($width != $max_width || $height != $max_height)
					{
					echo '<font color="red" face=Verdana size=2>! Afbeelding moet 450 x 300 pixels zijn</font><p/>';
					$errors=1;
					}
				
					else
						{
						//// BESTAND VERPLAATSEN NAAR MAP/////
						$result = move_uploaded_file($tmpName, $filePath); 
						if (!$result)
						{ 
						echo '<font color="red" face=Verdana size=2>Error uploading file</font><p/>';
						$errors=1;
						} 
						
						else
							{	
							//ALS ER AL EEN BESTAND, DAN INFO AAN QUERY TOEVOEGEN////
							$query .= ", name = '$newName', path = '$filePath',size = '$fileSize', type = '$fileType' "; 
							
							}  /* INSERT IF AFLSUITEN*/
						} /* VERPAASTEN IF AFLSUITEN*/
					} /* AFMETING PIXEL CHECK AFSLUITEN*/

				} /* GROOTTE IF AFLSUITEN*/
		}
	else
		{ 
		$newName = ""; //zit hier de fout?... 
		} 
		//finish off the qyery. 

$query .= "WHERE id = '{$_GET['id']}'"; 
$sql=mysql_query($query);
if(!$sql)
{
$errors=1;
trigger_error('Error, query fout:' . mysql_error());
}
			

}




?>





Moet ik in dit gedeelte eerst nog een query uitvoeren ofzo? :


<?
		if( file_exists($uploadDir . $fileName ) )
			{    
			unlink($uploadDir . $fileName );

			} 
?>



thnx voor de hulp
Ik bedoel een file_exists() op de random name. Je wilt wel zeker weten dat het bestand met de random name bestaat voordat je daar een unlink() op uitvoert...
die query moet er dan nog voor dus, ongeveer zo?:

 <?
{
if ($_FILES['userfile']['tmp_name'])
		{ 

$sql = "SELECT *  FROM news WHERE id = '{$_GET['id']}'"; 
$result = mysql_query($sql) or die('Error, get info gefaald. ' . mysql_error()); 
$row = mysql_fetch_assoc($result);

if( file_exists( '../newsimage/' . $row['name']) )
 {
   unlink( '../newsimage/' . $row['name']);
 }

/// MOVE >>

}
?>


Ja, maar die unlink zou ik pas doen als je een nieuw bestand succesvol geupload hebt. Anders zou je zomaar ineens zonder afbeelding kunnen komen te zitten.

Verder moet je ook nog even goed kijken naar je queries. Je gebruikt een GET variabele nu direct in je query, hetgeen de mogelijkheid tot sql injectie veroorzaakt. Een serieus veiligheidslek. Haal verder variabelen ook altijd buiten quotes.

Zie de handleiding die ik al eerder aanhaalde voor informatie over het opstellen van veilige queries en toepassen van correcte foutafhandeling.
probleem is trouwens dat als ik al een bestand sccesvol geupdate hebt, en ik DAARNA ga wissen..
Hij het nieuwe bestand gelijk wist..

EDIT: nu het wissen ervoor gezet (overigens andere code, waarin de hele update query al al eerder gedraait wordt, dus vandaar de unlink ervoor..)

Reageren