Ralf: bild upload einpflegen

Beitrag lesen

so, jetzt ist es aktiv.
es gibt nur leider keine warnung.
ist das skript denn jetzt in ordnung?

  
<?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  
        }  
    }  
}  
//###############################  
//datenbankanbindung  
//###############################  
  
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  
    }  
}  
  
  
  
?>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
<title>arne-sonnabend.de :: intern</title>  
<link href="../css/screen.css" rel="stylesheet" type="text/css" />  
</head>  
  
<body>  
  
    <div id="container">  
      <div id="header">  
        <h1>anlegen</h1>  
  
      <!-- end #header --></div>  
      <div id="mainContent">  
      	<form name="formular" id="formular" 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="img" id="img"></td>  
  </tr>  
  
    <td>&nbsp;</td>  
    <td><input type="submit" name="submitbutton" id="submitbutton" value="Abschicken" /></td>  
  </tr>  
</table>  
  
  
    	<!-- end #mainContent --></div>  
      <div id="footer">  
      <p>-----------------------------------</p>  
        BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>  
  Nickname: <?php echo $_SESSION["user_nickname"]; ?><br>  
  Nachname: <?php echo $_SESSION["user_nachname"]; ?><br>  
  Vorname: <?php echo $_SESSION["user_vorname"]; ?>  
  
  <a href="logout.php">Ausloggen</a>  
      <!-- end #footer --></div>  
    <!-- end #container --></div>  
    </body>  
</html>  

viele grüße
ralf