Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 26.10.2006, 14:00
TimGT TimGT ist offline
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 25.10.2006
Beiträge: 45
TimGT befindet sich auf einem aufstrebenden Ast
Standard Datei in Datenbank UND auf Server löschen

Hallo. Habe einen Bildupload realisiert, eine sehr einfache Version. Gleichzeitig wird ein Datenbank-Eintrag gemacht.


Auf der gleichen Seite werden dann in einer Tabelle die raufgeladenen Bilder wiederholt dargestellt, dort kann ich sie auch gleich wieder aus Datenbank löschen.
Und das ist der springende Punkt: Ich möchte, dass wenn ich dort auf Löschen klicke, dass auch gleich die Datei vom Server, und nicht nur ihr Eintrag in der DB gelöscht wird. Ich weiss, dass ich dateien mit dem Befehl unlink löschen kann, aber keine Ahnung wie ich das mit der DB verknüpfe. Kann mir jemand helfen?

PHP-Code:
<?php require_once('Connections/SYGCMS1.php'); ?>

<?php

function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
### BILD IN DATENBANK LÖSCHEN ###
if ((isset($_POST['deleteBild'])) && ($_POST['deleteBild'] != "")) {
  
$deleteSQL sprintf("DELETE FROM picture WHERE id=%s",
                       
GetSQLValueString($_POST['deleteBild'], "int"));

  
mysql_select_db($database_SYGCMS1$SYGCMS1);
  
$Result1 mysql_query($deleteSQL$SYGCMS1) or die(mysql_error());


  
$deleteGoTo "SYGCMSAdminPanelUpload.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));
}
### BILDER AUD DATENBANK ANZEIGEN ###
mysql_select_db($database_SYGCMS1$SYGCMS1);
$query_Bilder "SELECT * FROM picture ORDER BY id DESC";
$Bilder mysql_query($query_Bilder$SYGCMS1) or die(mysql_error());
$row_Bilder mysql_fetch_assoc($Bilder);
$totalRows_Bilder mysql_num_rows($Bilder);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>DIV-Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="sygcms1.css" type="text/css">
</head>
<body>


<!-- Gesamt-DIV -->
<div class="container">
 
 <!-- Titelansage -->

 <p class="title">Willkommen auf SYGCMS1.0</p>
 <p class="title">Admin Panel : Bilderupload </p>
 <p>Hier können Sie die Datenbanken verwalten.</p>
<div style="margin-left:10px; ">Wählen Sie bitte aus: <a href="SYGCMSAdminPanel.php">Home</a> | <a href="SYGCMSAdminPanelClientCat.php">Kategorien/Kunden</a> | <a href="SYGCMSAdminPanelUpload.php">Bilderupload</a> | Portfolioverwaltung</div>
  <!-- Portfolio-Container -->


  <div class="portfolio">
    <!-- Titelzeile -->
    <div class="portfolioTitle">
        <h5>Bilder uploaden</h5>
    </div>
    <!-- Beschreibung -->
    <div class="portfolioDescription"> 

    
     <?php
     
     
     
#####PICTUREUPLOAD######
## Einstellungen:
$max_size "2000000"//In Bytes  //2 MByte
$ordner $_POST['ordner']; // Der Ordnername wird von Textfeld 'ordner' im Formular übernommen

$save true//false wenn der Bildpfad nicht gespeichert werden soll
$save_typ "datenbank"// "datenbank" oder "text" hier eintragen
$save_name "picture"/*Name des Textfiles/der MySQL-Tabelle, in
dem die URL zum Bild gespeichert werden soll.
Wenn Text gewählt ist, wird die Datei angelegt, wenn sie nicht existiert*/

## Zur Datenbank connecten, wenn nötig
if($save_typ == "datenbank") {
   
$dbh=mysql_connect("localhost","root","")
   or die (
"Keine Verbindung möglich");
   
mysql_select_db("sygcms1",$dbh);
}

## Bild-Daten werden aus $_FILES "geholt", d.h. File wird analysiert
$bild_typ $_FILES['bild']['type']; //'bild' ist die Variable des Textfeldes
$bild_groesse $_FILES['bild']['size'];
$bild $_FILES['bild']['tmp_name'];  //Temporärer Filename
$bild_name $_FILES['bild']['name'];

$upper $_POST['upper']; // Bezeichnung des Bildes, 'upper' ist Variable des Textfeldes

#####Bild in Ordner verschieben#####

## Überprüfe, ob alle Kriterien erfüllt
## Hier kann alles Mögliche ausgetauscht werden
if(($bild_groesse <= $max_size) && ($bild_typ == "image/gif" ||
$bild_typ == "image/jpg" || $bild_typ == "image/jpeg" ||
$bild_typ == "image/png" || $bild_typ == "image/pjpeg")) {



   
$dest $ordner."/".$bild_name;  //Destination setzt sich zusammen aus Ordner/endgültigem Filename
   
if(move_uploaded_file($bild$dest)) { //Diese Funktion prüft, ob die mit $bild bezeichnete Datei eine gültige Upload-Datei ist. Ist die Datei gültig, wird sie zum in $dest bezeichneten Dateinamen verschoben.

       ## Pfad soll nicht gespeichert werden // NICHT RELEVANT, da save=true
       
if(!$save) { //!$Save = Save ist false

           
echo "Das Bild wurde erfolgreich hochgeladen<br>";
           echo 
"Ordner: ".$ordner."<br>";
           echo 
"Name: ".$bild_name."<br>";
           echo 
"Typ: ".$bild_typ."<br>";
      }
      
##########DATENBANKEINTRAG###########
      ## Pfad wird gespeichert  //RELEVANT, da save= true 
      
else {
          if(
$save_typ == "datenbank") {  // Ja, in Datenbank speichern
              
mysql_query("INSERT INTO ".$save_name." SET kommentar = '".$upper."', dateiname = '".$bild_name."', ordner = '".$ordner."'");
          }
          else {  
// Sonst wird hier in Textdatei gespeichert
              
$sn $save_name.".txt";
              
$insert $dest."|".$upper."\n";
              
$datei fopen($sn"a+"); //zum schreiben und ans ende der Datei
              
$inhalt fread($dateifilesize($sn));
              
$inhalt .= $insert;
              
fwrite($datei$inhalt);
              
fclose($datei);
          }
           echo 
"Das Bild wurde erfolgreich hochgeladen<br>";
           echo 
"Ordner: ".$ordner."<br>";
           echo 
"Name: ".$bild_name."<br>";
           echo 
"Typ: ".$bild_typ."<br>";
           echo 
" <a href=\"SYGCMSAdminPanelUpload.php\">Weiteres Bild uploaden und Anzeige aktualisieren</a> ";
           
$upload 'done'//Upload ist fertig
      
}
   }
}

##Falls Kriterien oben nicht stimmen (bild_typ, bild_groesse), Fehler ausgeben. 
else {
   if(
$bild_groesse $max_size) {
    echo 
"Das Bild ist zu groß";
   }
   else {
    echo 
"Bitte laden Sie Ihr Bild hoch.<br>";
    
   }
}
?>
<!-- Eingabeformular -->
<?php 
if($upload == 'done'// Wenn Upload fertig, setze Formular in Kommentarzeichen
{
    echo 
"<!--"
   }
  
?>


     <form action="SYGCMSAdminPanelUpload.php" method="post" enctype="multipart/form-data" name="Upload-Form">
       <table>
           <tr>
            <td>Bild</td>
            <td><input type="file" name="bild" size="30"></td>
           </tr>
           <tr>
            <td height="5"></td>
           </tr>
           <tr>
             <td>Ordner</td>
             <td><input name="ordner" type="text" id="ordner" size="30"></td>
          </tr>
           <tr>
            <td>Bezeichnung</td>
            <td><input type="text" name="upper" size="30"></td>
           </tr>
      </table>
    
<input type="submit" name="submit" value="Hochladen!">
<input type="reset" name="reset" value="Zurücketzen!">
</form>
<?php 
if($upload == "done") { 
    echo 
"-->"
    
   }
  
?>

    </div>
  </div><p></p>
  <div class="portfolio">
    <!-- Titelzeile -->
    <div class="portfolioTitle">
        <h5>Bilder Verwalten </h5>
    </div>
    
      
      <?php do { ?>
      <div class="portfolioDescription">
      <form name="BildLöschen" method="post" action="">
<input type="submit" name="Submit" value="Bild löschen">        
<input name="deleteBild" type="hidden" id="deleteBild" value="<?php echo $row_Bilder['id']; ?>">
      </form>
      <div>Kommentar: <?php echo $row_Bilder['kommentar']; ?></div>
      <div>Dateiname: <?php echo $row_Bilder['ordner']; ?>/<?php echo $row_Bilder['dateiname']; ?></div>
      <div><?php echo "<img src=\" " .$row_Bilder['ordner'] ." /" $row_Bilder['dateiname'] . "\"/>" ?></div>
      </div>
      <?php } while ($row_Bilder mysql_fetch_assoc($Bilder)); ?>
    
  </div>
  <p>Hier geht der normale Content weiter. </p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</div>
  


</body>
</html>
<?php
mysql_free_result
($Bilder);
?>
Mit Zitat antworten
Sponsored Links