Ralf: bild upload einpflegen

Beitrag lesen

ich habs hinbekommen,
aber keine ahnung woran es lag. hab die datei nochmal von vorne zusammengestellt.
hier der code:

  
  
<?php  
include ("checkuser.php");  
  
$db_host = "xxx";  
$db_user = "xxx";  
$db_pass = "xxx";  
$db_name = "xxx";  
  
  
  
//###############################  
//formular  
//###############################  
// Wurde das Formular abgeschickt?  
if (isset( $_POST['submitbutton'] ))  
{  
    // Whiteliste Dateiendungen und Ersetzungen  
    $Erlaubte_Dateiendungen = array( "jpg", "gif", "zip", "png" );  
    $Dateiname_bereinigen = array( 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss', ' ' => '_' );  
    // Pruefen ob die hochgeladenen Datei mehr als 0 Byte hat  
    // Hat sie das nicht, wurde auch nichts hochgeladen, logisch, was?! ;)  
    if ($_FILES['datei']['size'] > 0)  
    {  
        // Dateiendung der hochgeladenen Datei abtrennen  
        $UploadDateiEndung = array_pop( explode( ".", strtolower( $_FILES['datei']['name'] ) ) );  
        // Schauen ob die Endung der hochgeladenen Datei in der Whitelist steht  
        if (!in_array( $UploadDateiEndung, $Erlaubte_Dateiendungen ))  
        {  
            die( "Die angeh&auml;ngte Datei hat eine nicht erlaubte Dateiendung!" );  
        }  
        // Neuer Dateiname erzeugen indem Umlaute und Leerzeichen umgewandelt werden  
        $img = strtr( strtolower( $_FILES['datei']['name'] ), $Dateiname_bereinigen );  
        // UMASK resetten um Dateirechte zu ändern (wird nur fuer Linux benoetigt, Windows ignoriert das)  
        $umask_alt = umask( 0 );  
        // Hochgeladenen Datei verschieben  
        if (@move_uploaded_file($_FILES['datei']['tmp_name'] , "./bilder/" . $img))  
        {  
            // Die Datei wurde erfolgreich an ihren Bestimmungsort verschoben  
            /* ***************************************************************************************** */  
            /* *** Hier koennte Code stehen um Email zu versenden oder Datenbank-Eintraege zu machen *** */  
            /* ***************************************************************************************** */  
  
            // Dateirechte setzen, damit man später die Datei wieder vom FTP bekommt und die UMASK auf den alten Wert setzen  
            @chmod( $img, 0755 );  
            umask( $umask_alt );  
        }  
        else  
        {  
            // UMASK resetten  
            umask( $umask_alt );  
            // Hier steht Code der ausgefuehrt wird, wenn der Upload fehl schlug  
        }  
    }  
}  
  
  
  
  
if (isset( $_POST['submitbutton'] ))  
{  
    // Maskierende Slashes aus POST entfernen  
    $_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;  
  
    // Inhalte der Felder aus POST holen  
    $name = $_POST['url'];  
    $name_zusatz = $_POST['img'];  
  
  
    /* ************************************************************************************************ */  
    /* *** Hier sollten und MUESSEN die Benutzereingaben geprueft werden um Schadcode abzufangen!!! *** */  
    /* ************************************************************************************************ */  
  
    // Sind alle Eingaben durch die Validierung gekommen werden sie in die DB geschrieben  
    // Verbindung oeffnen und Datenbank ausweahlen  
    $conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );  
    if ($conID)  
    {  
        mysql_select_db( $db_name, $conID );  
    }  
  
    // Anfrage zusammenstellen der an die DB geschickt werden soll  
    $sql = "INSERT INTO `funtstuecke`  
                (`url`, `img`)  
            VALUES(  
                '" .mysql_real_escape_string( $url ). "',  
                '" .mysql_real_escape_string( $img ). "'  
  
                )";  
    // Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle  
    mysql_query( $sql );  
    // Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde  
    if (mysql_affected_rows() == 1)  
    {  
        echo "<h3>Der Datensatz wurde hinzugef&uuml;gt!</h3>";  
        // Hier kann weiterer Code stehen der ausgefuehrt werden soll  
        // wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken  
        // der ueber den neuen Eintrag informiert  
    }  
    else  
    {  
        echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugef&uuml;gt werden!</h3>";  
        // Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren  
        // wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken  
        // damit er sich um den Fehler kuemmern kann, etc pp  
    }  
}  
  
  
  
?>  
<html>  
<head>  
<title>Datei Upload</title>  
</head>  
  
<body>  
<form name="DateiUpload" id="DateiUpload" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">  
 <table width="500" border="0">  
 <tr>  
    <td width="70">url</td>  
    <td width="430"><input type="text" name="url" id="url" size="35" /></td>  
  </tr>  
  <tr>  
    <td>img</td>  
    <td><input type="file" name="datei" id="datei"></td>  
  </tr>  
  <tr>  
  	<td>&nbsp;</td>  
    <td><input type="submit" name="submitbutton" id="submitbutton" value="Datei hochladen"></td>  
   <tr>  
   </table>  
</form>  
<?php echo $img; ?>  
</body>  
</html>  

danke für den tip mit dem ausschließen und noch einen schönen abend
Ralf