PHP-Datei löschen … Pfadproblem?

Carrear

Erfahrenes Mitglied
Also ich mach ne nAvatarupload und speicher den dateinamen zum jeweiligen ava in einer db.... wenn jetzt jemand nen neues avatar hochlädt soll erst das alte gelöscht werden.. es passt aber irgendwas nicht.... schauts euch mal an:

PHP:
<?php  
$tempname = $_FILES['file']['tmp_name'];  
$name = $_SESSION['username']."_".$_FILES['file']['name']; 
$type = $_FILES['file']['type'];  
$size = $_FILES['file']['size'];  
$other ="SELECT
  ava
  FROM
  users
  WHERE
  username = '".$_SESSION['username']."' ";
$otherquery = mysql_query($other) OR die(mysql_error()); 
$result = mysql_fetch_array($otherquery);
echo $result['ava'];
if($type != "image/gif" && $type != "image/pjpeg") 
 {  
     $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";  
 }  
if($size > "20000") 
 {  
     $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 20 KB!";  
 }  
if(empty($err)) 
 {  
 if(trim($result['ava']) == "" )
  {
  unlink("./upload/images/", "$result['ava']");
  }
     copy("$tempname", "./upload/images/$name");  
     echo "Die Datei $name wurde erfolgreich hochgeladen!";  
 $sql="UPDATE
  users
             SET
  ava = '".$name."'
              WHERE
  username = '".$_SESSION["username"]."' ";
 mysql_query($sql) OR die(mysql_error()); 
 }  
else 
 {  
     foreach($err as $error)  
     echo "$error<br>";  
 }  
?>

Fehlemeldung lautet wie folgt:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/virtual/heerschaft.de/dusklounge_de/htdocs/include/upload.inc.php on line 33
 
Streiche:
PHP:
  unlink("./upload/images/", "$result['ava']");

Setze:
PHP:
  unlink("./upload/images/", $result['ava']);

(Die Anführungszeichen waren nicht nötig)
 
Okay, es funktioniert jetzt, allerdings war deine Antwort noch nicht zu 100% richtig.
Anstatt

PHP:
unlink("./upload/images/", $result['ava']);

muss es

PHP:
unlink("./upload/images/". $result['ava']);

heißen. Sprich es muss ein Punkt anstatt einem Komme gesetzt werden. Also übergebe ich der Funktion keine 2 Parameter, sowie iches gemacht habe (Pfad und Dateiname einzeln) sondern ich übergebe es als einen Paramter.
 
Zurück