bastel gerade an meinem "News" Skript, für eigene zwecke, also nix was irgendwann veröffentlicht wird und hänge beim, ich sag mal, Bilder Upload/Ändern.
Wenn ich eine News einstelle, Bild auswähle, klappt es wunderbar. Bild wird hochgeladen und in DB eingetragen.
Wenn ich die neue news nun editieren will und z.b das Bild ändern will, ist auch alles OK, sprich: altes Bild wird gesucht, gelöscht, neues wird hochgeladen und in DB eingetragen.
JEDOCH:
Wenn ich NUR den Newstext ändere, ohne das Bild irgendwie zu ändern, also einfach News ändere und auf Submit klicke, löscht er aber dennoch das alte Bild und die News ist Bildlos....
Ich kann es mir nicht erklären. Ich sitze an dem Ding schon seit Stunden und nix.
Hier anbei das Skript bzw ein Teil davon:
CODE
// SAVE MODIFIED NEWS
if($_POST['do'] == "savemodifynews" ){
$db = new mySQL();
if(!empty($_FILES['pic'])) {
include 'upload.php';
$up2 = new fileDir('/_images/news/');
//Bild suchen
$daten = $db->select("SELECT * FROM ".$db->GetTable("news")." WHERE ID='".$_POST['id']."'");
//Bild löschen
$up2->delete(''.$daten[0]->name.'');
//neuen Namen generieren
$c = md5(uniqid (rand (),true));
//neues Bild hochladen
$up2->upload($_FILES['pic'], $c);
#echo $up2->fileName();
//neues Bild in DB speichern
$db->query("
UPDATE
".$db->GetTable("news")."
SET
name='".mysql_real_escape_string($c."_".$up2->fileName())."'
WHERE
ID='".mysql_real_escape_string($_POST['id'])."'");
}
$db->query("
UPDATE
".$db->GetTable("news")."
SET
titel='".mysql_real_escape_string(addslashes(htmlspec
ialchars($_POST['titel'])))."',
artikel='".mysql_real_escape_string(addslashes(htmlspec
ialchars($_POST['input'])))."'
WHERE
ID='".mysql_real_escape_string($_POST['id'])."'");
echo '<p class="saved">successfully modified!</p>';
unset($db);
}
if($_POST['do'] == "savemodifynews" ){
$db = new mySQL();
if(!empty($_FILES['pic'])) {
include 'upload.php';
$up2 = new fileDir('/_images/news/');
//Bild suchen
$daten = $db->select("SELECT * FROM ".$db->GetTable("news")." WHERE ID='".$_POST['id']."'");
//Bild löschen
$up2->delete(''.$daten[0]->name.'');
//neuen Namen generieren
$c = md5(uniqid (rand (),true));
//neues Bild hochladen
$up2->upload($_FILES['pic'], $c);
#echo $up2->fileName();
//neues Bild in DB speichern
$db->query("
UPDATE
".$db->GetTable("news")."
SET
name='".mysql_real_escape_string($c."_".$up2->fileName())."'
WHERE
ID='".mysql_real_escape_string($_POST['id'])."'");
}
$db->query("
UPDATE
".$db->GetTable("news")."
SET
titel='".mysql_real_escape_string(addslashes(htmlspec
ialchars($_POST['titel'])))."',
artikel='".mysql_real_escape_string(addslashes(htmlspec
ialchars($_POST['input'])))."'
WHERE
ID='".mysql_real_escape_string($_POST['id'])."'");
echo '<p class="saved">successfully modified!</p>';
unset($db);
}
Ich vermute, man muss abfangen ob im input file etwas neues passiert oder ob das leer ist, ich hatte es hiermit versucht
if(!empty($_FILES['pic'])) {
aber das scheint wohl nicht zu klappen.
Danke schonmal für jegliche Hilfe!
Dieser Beitrag wurde von Marek123 bearbeitet: 03. September 2010 - 14:51