<?php
// Letzte Änderung: 12.12.2009
// Administrator-Einstellungen Anfang Fett markierte, rote Bereiche müssen, blaue können geändert werden
$UploadPfad='../../MySQL/sicher/bilder/'; // Dort werden die Bilder abgelegt $UploadTempPfad='../../MySQL/sicher/temp/'; // Temp Zwischenablage der Bilder
// Über diese URL sind die Bilder später aus der MySQL-Datenbank abrufbar $BasisBilderURL='http://www.tommyherrmanndesign.com/nof/MySQL/sicher/bilder/';
$MaxBildgroesseQuelle=1048576; // Maximale Bildgröße Quelle in Byte - hier 1 MiB $MaxXQuelle=640; // Max X der Quelle, Größe in Pixeln $MaxYQuelle=480; // Max Y der Quelle, Größe in Pixeln
$MaxXZiel=90; // Max X des Zieles, Größe in Pixeln $MaxYZiel=90; // Max Y des Zieles, Größe in Pixeln
// Administrator-Einstellungen Ende
$_POST['foto']=''; // Leere FotoURL anlegen, Datenbank-Feld heißt foto
if(isset($_FILES['DateiName']['name'])) // prüfe ob überhaupt ein Datenfeld übergeben wurde // Vorsicht: Hier wird der Upload auch sogleich // beendet, wenn die durch den Server vorgegebene // Größe von post_max_size überschritten wurde. {
if(!empty($_FILES['DateiName']['name'])) // prüfen ob die übergebene Datei // vom System angelegt wurde {
$BildName=time().rand(1000,9999).'.jpg'; // ZielBild bekommt den Namen // Timestamp+4stellige Zufallszahl+.jpg
$BildmitPfad=$UploadPfad.$BildName; // ZielBild_mit_Pfad ist UploadPfad+BildName // z.B. ../sicher/bilder/12345678901234.jpg
$BildmitTempPfad=$UploadTempPfad.rand(1000,9999).$BildName; // Das Bild im TempPfad ist jenes was wir hochladen // mit dem Namen so wie beim ZielBild zusätzlich // noch mal um eine 4stellige Zufallszahl erweitert
if($_FILES['DateiName']['error'] == UPLOAD_ERR_OK) // Hier prüfen wir ob der Upload OK war, d.h. auch, // daß geprüft wird, ob die vom Server durch // upload_max_filesize vorgegebene Größe // überschritten wurde {
if($_FILES['DateiName']['size'] <= $MaxBildgroesseQuelle) // Wenn keine Maxima vom Server überschritten wurden // und wird geprüft ob die Dateigröße auch unseren // Anforderungen (1 MiB) entspricht {
if(move_uploaded_file($_FILES['DateiName']['tmp_name'],$BildmitTempPfad)) // Wenn soweit alles OK ist, wird die Datei, // die durch den Browser/Server meist nacht // /tmp/ kopiert wurde in den TempPfad verschoben. {
if(getimagesize($BildmitTempPfad) == TRUE) // Hier wird geprüft, ob Datei ein gültiges Bild ist. // Die Funktion prüft aber nur den Header der Datei. // Es könnte im Bild versteckt noch schädlicher Code // enthalten sein. {
$UploadBildInfo=getimagesize($BildmitTempPfad); // Hier hole ich weitere Infos zum hochgeladenen Bild
// 2 Zeilen später prüfe ich dann auf Typ gleich JPEG und ob MaxX und MaxY der Quelle nicht zu groß sind.
if(($UploadBildInfo[2] == 2) && ($UploadBildInfo[0] <= $MaxXQuelle) && ($UploadBildInfo[1] <= $MaxYQuelle)) {
$UploadBild=imagecreatefromjpeg($BildmitTempPfad); // Erzeuge JPEG Bild im Hauptspeicher von UploadDatei
$NeuesBild=imagecreatetruecolor($MaxXZiel, $MaxYZiel); // Erzeuge neues JPEG Bild im Hauptspeicher // mit Max X/Y Ziel
// 2 Zeilen später kopiere und strecke/dehne ich das OriginalBild in das ZielBild
imagecopyresampled($NeuesBild, $UploadBild, 0, 0, 0, 0, $MaxXZiel, $MaxYZiel, $UploadBildInfo[0], $UploadBildInfo[1]);
imagejpeg($NeuesBild, $BildmitPfad); // Das neue Bild wird im ZielPfad gespeichert
imagedestroy($UploadBild); // Hauptspeicher freigeben, Originalbild imagedestroy($NeuesBild); // Hauptspeicher freigeben, Zielbild
$_POST['foto']=$BasisBilderURL.$BildName; // Hier wird dann die Variable mit der URL für NOF gesetzt } } unlink($BildmitTempPfad); // Hier wird das hochgeladene temporäre Bild gelöscht } } } } }
// Anfang Text-Variablen der e-Mail an den Administrator // Letzte Änderung am 12.12.2009
$sendEmpf = "Adresse@DeineDomain.de"; $sendAbse = "From: Absender@DeineDoamin.de";
$sendThem = "Datensatz meiner Datenbank wurde bearbeitet"; $sendUser = "An den Administrator,\r\n\r\n"; $sendUser .= "Ein Datensatz wurde in der Datenbank geändert\r\n\r\n\r\n";
// Foto wurde entweder nicht angegeben, bzw. der Upload hat nicht funktioniert oder das Bild entsprach nicht unseren Vorgaben // z.B. auch: wir möchten nichts am Foto ändern if (($_POST['foto'] == "") && ($_POST['behalten'] == "on")) $sendUser .= "Altes Foto bleibt erhalten.\r\n\r\n";
// Foto wurde entweder nicht angegeben, bzw. der Upload hat nicht funktioniert oder das Bild entsprach nicht unseren Vorgaben // und wir wollten es nicht behalten. // z.B. auch: wir möchten das Foto nur einfach löschen if (($_POST['foto'] == "") && ($_POST['behalten'] != "on")) $sendUser .= "Altes Foto wird nicht mehr angezeigt\r\n\r\n";
// Foto wurde angegeben und ordnungsgemäß hochgeladen aber wir wollen doch das alte Foto behalten (macht so keinen Sinn) if (($_POST['foto'] != "") && ($_POST['behalten'] == "on")) $sendUser .= "Neues Foto ($BasisBilderURL$BildName) wurde zwar hochgeladen, wird aber nicht angezeigt.\r\n\r\n";
// Foto wurde angegeben, ordnungsgemäß hochgeladen und wird dann auch angezeigt if (($_POST['foto'] != "") && ($_POST['behalten'] != "on")) $sendUser .= "Neues Foto ($BasisBilderURL$BildName) wurde hochgeladen und wird angezeigt.\r\n\r\n";
$sendUser .= "Datensatz war ID: " . $_POST['ID'] . " Name: " . $_POST['Vorname'] . " " . $_POST['Name'] . "\r\n";
$sendSign = "\r\n\r\nGruss Admin"; // Ende Text-Variablen der e-Mail
// Mail versenden mit den oben erzeugten Variablen @mail( $sendEmpf, $sendThem, $sendUser . $sendSign, $sendAbse ); ?>
|