Hier das Formular-Script:
PHP-Code:
<html>
<head>
<title>Administrationsebene</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h2><u>Administration des Fotomaterials!!</u></h2>
<?php
$selectquery = 'SELECT foto_id, preview_file, bigview_file
FROM Fotos
WHERE foto_id = "'.$_GET["id"].'"';
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);
echo '<b>ACHTUNG!</b><br>';
echo '<form enctype="multipart/form-data" action="fotos_aendern_action.php5" method="post">';
if ((list ($foto_id, $preview_file, $bigview_file) = mysql_fetch_row($selecterg)) OR ($_GET["id"]=="NEU"))
{
if ($_GET["id"] == "NEU")
{
$foto_id = 'wird automatisch vergeben';
echo 'Vollbild und Vorschaubild müssen immer beide gleichzeitig hochgeladen werden; ansonsten erfolgt ein Abbruch!';
echo '<table border="1">';
echo '<input name="modus" type="hidden" value="NEW">';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">';
echo '<tr><td>Foto-ID:</td><td>'.$foto_id.'</td></tr>';
echo '<tr><td>Vollbild (800 Pixel breit):</td>';
echo '<td><input name="userfile1" type="file" size="50"></td></tr>';
echo '<tr><td>Vorschaubild (150 Pixel breit):</td>';
echo '<td><input name="userfile2" type="file" size="50"></td></tr>';
}
elseif (eregi("[0-9]", $_GET["id"]))
{
echo '<table border="1">';
echo '<input name="modus" type="hidden" value="EDIT">';
echo '<input name="in_id" type="hidden" value="'.$foto_id.'">';
echo '<input name="in_bilder_image" type="hidden" value="'.$bigview_file.'">';
echo '<input name="in_bilder_thumbnail" type="hidden" value="'.$preview_file.'">';
echo '<tr><td>Foto-ID</td><td>'.$foto_id.'</td></tr>';
echo '<tr><td>Bild</td><td align="center"><img src="../fotos/preview/'.$preview_file.'"></td></tr>';
}
if ($_GET["id"] != "NEU" && eregi("[0-9]", $_GET["id"]))
{
echo '<tr><td colspan="2">Zum Löschen des Fotos bitte Checkbox <input type="checkbox" name="deletecheck" value="true"> aktivieren!</td></tr>';
}
echo '</table>';
echo '<input type="submit" value="Angaben speichern">';
echo '</form>';
}
else { echo '<p>Fehler in der Verarbeitung!</p>'; }
?>
<p><a href="../backend/index.php5?cat=2">Zurück zum Foto-Menü</a></p>
</body>
</html>
Hier das Ausführungs-Script:
PHP-Code:
<html>
<head>
<title>Administrationsebene</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h2><u>Administration des Fotomaterials!!</u></h2>
<?php
if ($_POST["modus"] == "NEW") {
// Ermitteln wieviel Bilder/Beiträge schon hochgeladen wurden
$selectquery = 'SELECT MAX(foto_id) FROM Fotos';
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);
list($maxid) = mysql_fetch_row($selecterg);
if (empty($userfile1) AND empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde entsprechende Bilder auszuwählen!';
exit;
}
elseif (empty($userfile1) AND !empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde ein Vollbild auszuwählen!';
exit;
}
elseif (!empty($userfile1) AND empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde ein Vorschaubild auszuwählen!';
exit;
}
else
{
if (is_uploaded_file($_FILES['userfile1']['size']) > 500000) {
echo 'Das Vollbild ist zu groß (es sind maximal 500 kb erlaubt).';
exit;
}
if (is_uploaded_file($_FILES['userfile2']['size']) > 100000) {
echo 'Das Vorschaubild ist zu groß (es sind maximal 100 kb erlaubt).';
exit;
}
$bildinfos1 = GetImageSize($_FILES['userfile1']['tmp_name']);
$bildinfos2 = GetImageSize($_FILES['userfile2']['tmp_name']);
if ($bildinfos1[0] > 800) {
echo 'Das Vollbild ist breiter als erlaubt (maximal 800 Pixel)';
exit;
}
if ($bildinfos2[0] > 150) {
echo 'Das Vorschaubild ist breiter als erlaubt (maximal 150 Pixel)';
exit;
}
if ($bildinfos1[2] != 2) {
echo 'Bei dem Vollbild handelt es sich nicht um ein JPG!';
exit;
}
if ($bildinfos2[2] != 2) {
echo 'Bei dem Vorschaubild handelt es sich nicht um ein JPG!';
exit;
}
$maxid++;
$bild_datei1 = $maxid.'.jpg'; $bild_datei2 = 'preview_'.$maxid.'.jpg';
$bild_url_intern1 = $_SERVER['DOCUMENT_ROOT'].'/fotos/fullview/'.$bild_datei1;
$bild_url_intern2 = $_SERVER['DOCUMENT_ROOT'].'/fotos/preview/'.$bild_datei2;
copy($_FILES['userfile1']['tmp_name'], $bild_url_intern1);
copy($_FILES['userfile2']['tmp_name'], $bild_url_intern2);
$insertquery = 'INSERT INTO Fotos(foto_id, preview_file, bigview_file)
VALUES ("'.$_POST["maxid"].'", "'.$bild_datei2.'", "'.$bild_datei1.'")';
$inserterg = mysql_db_query($db_name, $insertquery, $verbindung);
echo 'Das Vollbild wurde als <b>'.$bild_datei1.'</b> und das Vorschaubild als <b>'.$bild_datei2.'</b> auf den Server übertragen und gespeichert!<br>';
echo 'Beide Ansichten wurden unter der <b>Foto-ID: '.$maxid.'</b> abgelegt.';
}
}
elseif ($_POST["modus"] == "EDIT")
{
if ($_POST["deletecheck"] != "true")
{
$updatequery = 'UPDATE Fotos
SET preview_file = "'.$_POST["in_bilder_thumbnail"].'", fullview_file = "'.$_POST["in_bilder_image"].'"
WHERE foto_id="'.$_POST["in_id"].'"';
$updateerg = mysql_db_query($db_name, $updatequery, $verbindung);
echo 'Fotomaterial <b>ID: '.$_POST["in_id"].'</b> wurde erfolgreich geändert und gespeichert.';
}
elseif ($_POST["deletecheck"] == "true")
{
$vollbildpfad= '../fotos/fullview/'.$_POST["in_bilder_image"];
$previewbildpfad = '../fotos/preview/'.$_POST["in_bilder_thumbnail"];
$vollbild = $_POST["in_bilder_image"];
$previewbild = $_POST["in_bilder_thumbnail"];
// Löschen des Vollbildes versuchen
$result1 = @unlink($vollbildpfad);
// Löschen des Previewbildes versuchen
$result2 = @unlink($previewbildpfad);
if (($result1 == false) || ($result2 == false))
{
echo 'Entfernen von Foto-ID: '.$_POST["in_id"].' konnte nicht ausgeführt werden!<br><br>';
echo '<b>Grund:</b><br>';
if ($result1 == false)
{
echo ' Die Vollbild-Datei '.$vollbild.' konnte nicht gelöscht werden!<br>';
}
if ($result2 == false)
{
echo ' Die Preview-bild-Datei '.$previewbild.' konnte nicht gelöscht werden!<br>';
}
}
else
{
$deletequery = 'DELETE FROM Fotos WHERE foto_id="'.$_POST["in_id"].'"';
$deleteerg = mysql_db_query($db_name, $deletequery, $verbindung) or die(mysql_error().'<br>$deletequery');
echo 'Die <b>Foto-ID: '.$_POST["in_id"].'</b> wurde erfolgreich aus der Datenbank entfernt';
echo ' und die dazugehörigen Bilder (<b>'.$_POST["in_bilder_image"].'</b> / <b>'.$_POST["in_bilder_thumbnail"].'</b>) auf dem Server gelöscht!';
}
}
}
?>
<p><a href="../backend/index.php5?cat=2">Zurück zum Galerie-Menü</a></p>
</body>
</html>
Mein Problem ist, dass ich trotz Verwendung von jpg-Files immer die Meldung angezeigt bekomme
"Der Upload wurde nicht gestartet, weil vergessen wurde entsprechende Bilder auszuwählen!" und auch nachweislich kein Datei auf den Server übertragen wurde!
Habe es schon mal mit error_reporting(E_ALL); versucht - ohne Ergebnis!
Ich hoffe eine das hier jemand nicht mit der gleichen Blindheit geschlagen ist wie ich und weiterhelfen kann!?