Uploadformular $datei_name wird nicht in Datenbank gespeichert

solomat

Erfahrenes Mitglied
Hallo, wieder mal zu meinen DJ Poll, habe nun schon einiges ausprobiert von den was ich finden konnte und es auch geschafft das mir die editor Seite meines DJ Pool´s ohne Fehler angezeigt wird. Aber leider will der in der umbenannte dateiname den ich in der variable $datei_name gespeichert habe nicht in meine datenbank gespeichert werden.
Aus welchen Grund gehts das nicht?
Hier der code, der Upload ist im unteren PHP-Teil
PHP:
<link href="../layout.css" rel="stylesheet" type="text/css">
<table width="100%" height="100%"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="7" height="7" valign="top"><p><img src="../images/dummie.gif" width="7" height="7"></p></td>
    <td height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td width="7" height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
  </tr>
  <tr>
    <td width="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td valign="top"><table width="300" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td class="tbl_topic">DJ-Poolformular // Editor</td>
        </tr>
      </table>
        <br>
        <br>
        <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="tbl">
          <tr>
            <td><table width="100%"  border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td>
<?
if(empty($do))
{
include("sqlfile.php");
$sql="SELECT * FROM djpool WHERE id = '$id'";
$erg = mysql_query($sql) OR die(mysql_error());
while (list($id,$name,$alter,$city,$djnick,$djseit,$stil,$ref,$email,$homepage,$filename,$besch,$anmeldunng )=mysql_fetch_row($erg))
{
eval("dooutput(\"".gettemplate("edit")."\");");
}
}



if($do=="edit")
{
include("sqlfile.php");

$fehler=array();
if(empty($name))
{$f= "Du hast vergessen deinen Namen einzutragen!"; array_push($fehler,$f);}
if(empty($alter))
{$f= "Du hast vergessen dein Alter einzutragen!"; array_push($fehler,$f);}
if(empty($city))
{$f= "Du hast vergessen deinen Wohnort einzutragen!"; array_push($fehler,$f);}
if(empty($djnick))
{$f= "Du hast vergessen deinen DJ-Namen einzutragen!"; array_push($fehler,$f);}
if(empty($djseit))
{$f= "Du hast vergessen einzutragen, seit wann du DJ bist!"; array_push($fehler,$f);}
if(empty($stil))
{$f= "Du hast vergessen deinen Musikstil einzutragen!"; array_push($fehler,$f);}
	
	if($noref == 1)
	{
	$ref = "N/A";
	}
	else
	{	if(empty($ref))
		{
		$f= "Wenn du keine Referenzen besitzt kreuze dafür bitte das Feld an!"; array_push($fehler,$f);
		}
	}
	
	if($nohome == 1)
	{
	$homepage = "N/A";
	}
	else
	{
		if(empty($homepage))
		{
		$f= "Wenn du keine Homepage besitzt kreuze dafür bitte das Feld an!"; array_push($fehler,$f);
		}
	}

if(!ereg(".+@.+\..+", $email) || empty($email)) { $f="Die von dir angegebene Email-Adresse ist falsch!"; array_push($fehler,$f); }
if(empty($besch))
{$f= "Du hast vergessen eine Beschreibung von dir einzutragen!"; array_push($fehler,$f);}
if(empty($pass1) || empty($pass2) || $pass1 != $pass2)
{$f= "Du hast vergessen ein Passwort einzutragen bzw. dein Passwort ist ungleich!"; array_push($fehler,$f);}

$t=count($fehler);
if ($t>0)
{
	$zurueck='<a href=javascript:history.back()>zum Formular zurückkehren</a>';
	echo "Fehler!<br>";
	foreach ($fehler as $x) { echo "$x<br>\n"; }
	echo "<br>$zurueck<br><br>\n";
}
else
{
	$pass1 = md5($pass2);
	$sql="UPDATE `djpool` SET `name` = '$name', `alter` = '$alter', `city` = '$city', `djnick` = '$djnick', `djseit` = '$djseit', `stil` = '$stil', `ref` = '$ref', `email` = '$email', `homepage` = '$homepage', `filename` = '$filename', `besch` = '$besch', `pass` = '$pass1' WHERE `id` = '$id'";


if (mysql_query($sql,$verbindung))
{
	echo "Erfolgreich Aktualisiert";
	echo "<br> <a href=list.php>zur Liste</a><br>";
	// Hier würde ich evtl noch eine html File includen!
}
else 
{
	echo "<br><b>Fehler!</b><br><br>\n";
	echo "Leider ist bei der Anmeldung zur Datenbank ein Fehler unterlaufen.<br>Bitte melden Sie sich nochmal an.<br><br><a href=\"javascript:history.back()\">zurück zum Formular</a><br><br>\n";
}
}
}

?>
<?php 
if(isset($submit)){ 
$size=$bild_size; 
$name=$bild_name; 
$type=$bild_type; 

$datei = "$name"; 
$str = explode(".", $datei); 
$str = array_reverse($str); 

if(eregi("(jpg|gif)$",$name)){ 
if($size<30000AND$size!=0){ 
@copy($bild,"memberpics/".$djnick.".".$str['0']); 
$datei_name=$djnick.".".$str['0'];
$sql="UPDATE `djpool` SET `filename` = '$datei_name' WHERE `id` = '$id'";
echo"<br><br><strong>Bilderupload</strong><br>"; 
echo"Die Datei wurde erfolgreich hochgeladen.<br>"; 
echo"Größe: ".$size." Byte<br>"; 
echo"Name: ".$djnick."<br>"; 
echo"MIME-Type: ".$type."<br>"; 
echo"Ansehen: <a href='memberpics/".$djnick.".".$str['0']."'>".$djnick.".".$str['0']."</a>"; 
}else{ 
echo"<br><br><strong>Bilderupload</strong><br>";
echo"Ihre Datei ist zu gross oder gleich 0kb!"; 
} 
}else{ 
echo"<br><br><strong>Bilderupload</strong><br>";
echo"Kein Bild hochgeladen oder falscher Dateityp.<br>Es sind nur gif und jpg Datein erlaubt!";
} 

}else{ 

} 
?> 
</td>
                </tr>
            </table></td>
          </tr>
        </table>
    </td>
    <td valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
  </tr>
  <tr>
    <td width="7" height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
  </tr>
</table>
 
PHP:
$sql="UPDATE `djpool` SET `name` = '$name', `alter` = '$alter', `city` = '$city', `djnick` = '$djnick', `djseit` = '$djseit', `stil` = '$stil', `ref` = '$ref', `email` = '$email', `homepage` = '$homepage', `filename` = '$filename', `besch` = '$besch', `pass` = '$pass1' WHERE `id` = '$id'";

Mein Vorschlag:

PHP:
mysql_query("UPDATE djpool SET name='$name', alter='$alter', ... WHERE id = '$id' ");

Aber leider will der in der umbenannte dateiname den ich in der variable $datei_name gespeichert habe nicht in meine datenbank gespeichert werden.
Aus welchen Grund gehts das nicht?

Das kenn ich, versuch mal die Spalte in der Mysql umzubenennen. "filename" könnte Wunder wirken.

Hab sonst keine Ahnung! Hoffe es hilft!

PHP:
@copy($bild,"memberpics/".$djnick.".".$str['0']); 
$datei_name=$djnick.".".$str['0'];

Versuch mal so:
PHP:
$operator="".$djnick.".".$str['0'].""; 
$dateiname="memberpics/".$operator."";
@copy($bild,$dateiname);

// Und trag mal den $operator ein
 
Zuletzt bearbeitet von einem Moderator:
Oh, danke für die Antwort, habe es gerade hinbekommen, es hat nur ne Zeile gefehlt:
PHP:
mysql_query($sql,$verbindung);

Nun gehts, Problem besteht nun darin, das, wenn der User kein Bild hochladen möchte, er nicht die Fehlermeldung bekommen soll das der Dateityp falsch ist, sondern darauf hingewiesen werden soll, das er in einer Checkbox ankreuzen soll das er kein Bild hochladen will. Und wenn er kein Bild hochläd, soll ein Dummie an dieser Stelle erscheinen wo eigentlich das Bild ist.

So siehts jetzt aus:
PHP:
<link href="../layout.css" rel="stylesheet" type="text/css">
<table width="100%" height="100%"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="7" height="7" valign="top"><p><img src="../images/dummie.gif" width="7" height="7"></p></td>
    <td height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td width="7" height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
  </tr>
  <tr>
    <td width="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td valign="top"><table width="300" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td class="tbl_topic">DJ-Poolformular // Editor</td>
        </tr>
      </table>
        <br>
        <br>
        <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="tbl">
          <tr>
            <td><table width="100%"  border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td>
<?
if(empty($do))
{
include("sqlfile.php");
$sql="SELECT * FROM djpool WHERE id = '$id'";
$erg = mysql_query($sql) OR die(mysql_error());
while (list($id,$name,$alter,$city,$djnick,$djseit,$stil,$ref,$email,$homepage,$filename,$besch,$anmeldunng )=mysql_fetch_row($erg))
{
eval("dooutput(\"".gettemplate("edit")."\");");
}
}



if($do=="edit")
{
include("sqlfile.php");

$fehler=array();
if(empty($name))
{$f= "Du hast vergessen deinen Namen einzutragen!"; array_push($fehler,$f);}
if(empty($alter))
{$f= "Du hast vergessen dein Alter einzutragen!"; array_push($fehler,$f);}
if(empty($city))
{$f= "Du hast vergessen deinen Wohnort einzutragen!"; array_push($fehler,$f);}
if(empty($djnick))
{$f= "Du hast vergessen deinen DJ-Namen einzutragen!"; array_push($fehler,$f);}
if(empty($djseit))
{$f= "Du hast vergessen einzutragen, seit wann du DJ bist!"; array_push($fehler,$f);}
if(empty($stil))
{$f= "Du hast vergessen deinen Musikstil einzutragen!"; array_push($fehler,$f);}
	
	if($noref == 1)
	{
	$ref = "N/A";
	}
	else
	{	if(empty($ref))
		{
		$f= "Wenn du keine Referenzen besitzt kreuze dafür bitte das Feld an!"; array_push($fehler,$f);
		}
	}
	
	if($nohome == 1)
	{
	$homepage = "N/A";
	}
	else
	{
		if(empty($homepage))
		{
		$f= "Wenn du keine Homepage besitzt kreuze dafür bitte das Feld an!"; array_push($fehler,$f);
		}
	}

if(!ereg(".+@.+\..+", $email) || empty($email)) { $f="Die von dir angegebene Email-Adresse ist falsch!"; array_push($fehler,$f); }
if(empty($besch))
{$f= "Du hast vergessen eine Beschreibung von dir einzutragen!"; array_push($fehler,$f);}
if(empty($pass1) || empty($pass2) || $pass1 != $pass2)
{$f= "Du hast vergessen ein Passwort einzutragen bzw. dein Passwort ist ungleich!"; array_push($fehler,$f);}

$t=count($fehler);
if ($t>0)
{
	$zurueck='<a href=javascript:history.back()>zum Formular zurückkehren</a>';
	echo "<strong>Infos</strong><br>Fehler!<br>";
	foreach ($fehler as $x) { echo "$x<br>\n"; }
	echo "<br>$zurueck<br><br>\n";
}
else
{
	$pass1 = md5($pass2);
	$sql="UPDATE `djpool` SET `name` = '$name', `alter` = '$alter', `city` = '$city', `djnick` = '$djnick', `djseit` = '$djseit', `stil` = '$stil', `ref` = '$ref', `email` = '$email', `homepage` = '$homepage', `filename` = '$filename', `besch` = '$besch', `pass` = '$pass1' WHERE `id` = '$id'";


if (mysql_query($sql,$verbindung))
{
	echo "<strong>Infos</strong><br>Erfolgreich Aktualisiert";
	echo "<br> <a href=list.php>zur Liste</a><br>";
	// Hier würde ich evtl noch eine html File includen!
}
else 
{
	echo "<br><b>Fehler!</b><br><br>\n";
	echo "Leider ist bei der Anmeldung zur Datenbank ein Fehler unterlaufen.<br>Bitte melden Sie sich nochmal an.<br><br><a href=\"javascript:history.back()\">zurück zum Formular</a><br><br>\n";
}
}
}

?>
<?php
if(isset($submit)){ 
$size=$bild_size; 
$name=$bild_name; 
$type=$bild_type; 

$datei = "$name"; 
$str = explode(".", $datei); 
$str = array_reverse($str); 

if(eregi("(jpg|gif)$",$name)){ 
if($size<30000AND$size!=0){ 
@copy($bild,"memberpics/".$djnick.".".$str['0']); 
$datei_name=$djnick.".".$str['0'];
$sql="UPDATE `djpool` SET `filename` = '$datei_name' WHERE `id` = '$id'";
mysql_query($sql,$verbindung); 
echo"<br><br><strong>Bilderupload</strong><br>"; 
echo"Die Datei wurde erfolgreich hochgeladen.<br>"; 
echo"Größe: ".$size." Byte<br>"; 
echo"Name: ".$djnick."<br>"; 
echo"MIME-Type: ".$type."<br>"; 
echo"Ansehen: <a href='memberpics/".$djnick.".".$str['0']."'>".$djnick.".".$str['0']."</a>"; 
}else{ 
echo"<br><br><strong>Bilderupload</strong><br>";
echo"Ihre Datei ist zu gross oder gleich 0kb!"; 
} 
}else{ 
echo"<br><br><strong>Bilderupload</strong><br>";
echo"Du wolltest einen falschen Dateityp hochladen!<br>Es sind nur gif und jpg Datein erlaubt!";
} 

}else{ 

} 
?> 
</td>
                </tr>
            </table></td>
          </tr>
        </table>
    </td>
    <td valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
  </tr>
  <tr>
    <td width="7" height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td height="7" valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
    <td valign="top"><img src="../images/dummie.gif" width="7" height="7"></td>
  </tr>
</table>

Ich dachte jetzt:

wenn
checkbox aktiv
dann
pfad zum dummie.jpg in db eintragen

Aber irgendwie komm ich nich darauf wie ich das nun wieder anstelle, wobei ja dann auch der Rest vom Bilderupload wegfällt, da ja nichts hochgeladen wird und kein Dateiname geändert werden soll und dieser geänderte Dateiname dann auch nicht in die DB eingetragen wird.
 
So, habe es jetzt hinbekommen, das wenn jemand kein Bild hochladen möchte der Name dummie.gif in die Datenbank gespeichert wird. Nur habe ich jetzt das Problem das der Resr des Scriptes natürlich auch noch durchläuft und somit die Fehlermeldung für den Dateityp noch ausgegeben wird.

Wie erreiche ich es, das wenn kein Bild ausgewählt bzw. die Checkbox geklickt wurde, das Script dort stopt? Sprich die anderen Fehlermeldungen nicht erscheinen?
PHP:
if(isset($submit)){ 
if($nobild == 1)
	{
	$bild = "dummie.gif";
	}
	else
	{	if(empty($bild))
		{
		echo"<br><br><strong>Bilderupload</strong><br>Wenn du kein Bild hochladen möchtest, kreuze dafür bitte das Feld an!";
		}
	}
$sql="UPDATE `djpool` SET `filename` = '$bild' WHERE `id` = '$id'";
mysql_query($sql,$verbindung);
//hier soll dann schluss sein falls kein bild ausgesucht wurde, bzw. die checkbox geklickt wurde.
$size=$bild_size; 
$name=$bild_name; 
$type=$bild_type; 
$datei = "$name"; 
$str = explode(".", $datei); 
$str = array_reverse($str); 
if(eregi("(jpg|gif)$",$name)){ 
if($size<30000AND$size!=0){ 
@copy($bild,"memberpics/".$djnick.".".$str['0']); 
$datei_name=$djnick.".".$str['0'];
$sql="UPDATE `djpool` SET `filename` = '$datei_name' WHERE `id` = '$id'";
mysql_query($sql,$verbindung);
echo"<br><br><strong>Bilderupload</strong><br>"; 
echo"Die Datei wurde erfolgreich hochgeladen.<br>"; 
echo"Größe: ".$size." Byte<br>"; 
echo"Name: ".$djnick."<br>"; 
echo"MIME-Type: ".$type."<br>"; 
echo"Ansehen: <a href='memberpics/".$djnick.".".$str['0']."'>".$djnick.".".$str['0']."</a>"; 
}else{ 
echo"<br><br><strong>Bilderupload</strong><br>";
echo"Ihre Datei ist zu gross oder gleich 0kb!"; 
} 
}else{ 
echo"<br><br><strong>Bilderupload</strong><br>";
echo"Du wolltest einen falschen Dateityp hochladen!<br>Es sind nur gif und jpg Datein erlaubt!";
} 
}else{ 
}
 
Mit einiger Suche und etwas Hilfe habe ich auch dies hinbekommen, allerdings stopt es hier wohl ganz, jetzt ird die Datei zwar hochgeladen, wenn denn eine Ausgewählt ist, aber es erscheinen keine Fehler-/Erfolgsmeldungen und die Datei verbleibt nach dem Upload im tmp ordner. Woran liegts? Wie kann ichs verändern?
PHP:
if(isset($submit)){ 
if($nobild == 1)
	{
	$bild = "dummie.gif";
	}
	else
	{	if(empty($bild))
		{
		echo"

<br><strong>Bilderupload</strong><br>
Wenn du kein Bild hochladen möchtest, kreuze dafür bitte das Feld an!";
		}
	}
$sql="UPDATE `djpool` SET `filename` = '$bild' WHERE `id` = '$id'";
mysql_query($sql,$verbindung);
$checkbox = $_REQUEST['nobild'];
if($checkbox == "0") {
   $size=$bild_size; 
   $name=$bild_name; 
   $type=$bild_type; 
   $datei = "$name"; 
   $str = explode(".", $datei); 
   $str = array_reverse($str); 
   if(eregi("(jpg|gif)$",$name)){ 
   if($size<30000AND$size!=0){ 
   @copy($bild,"memberpics/".$djnick.".".$str['0']); 
   $datei_name=$djnick.".".$str['0'];
   $sql="UPDATE `djpool` SET `filename` = '$datei_name' WHERE `id` = '$id'";
   mysql_query($sql,$verbindung);
   echo"
   
   <strong>Bilderupload</strong>
   "; 
   echo"Die Datei wurde erfolgreich hochgeladen.
   "; 
   echo"Größe: ".$size." Byte
   "; 
   echo"Name: ".$djnick."
   "; 
   echo"MIME-Type: ".$type."
   "; 
   echo"Ansehen: <a href='memberpics/".$datei_name."'>".$datei_name."</a>"; 
   }else{ 
   echo"
   
   <strong>Bilderupload</strong>
   ";
   echo"Ihre Datei ist zu gross oder gleich 0kb!"; 
   } 
   }else{ 
   echo"
   
   <strong>Bilderupload</strong>
   ";
   echo"Du wolltest einen falschen Dateityp hochladen!<br>
   Es sind nur gif und jpg Datein erlaubt!";
   } 
   }else{ 
   } 
}
 
Zurück