PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?


UncleKracker
07.10.2006, 13:26:37
Hallo Leute,

falls es programmiertechnisch machbar ist, würde ich gerne folgendes realisieren!

Über eine Updloadfunktion sollen ein Preview-JPG(Maxbreite 120Pixel) und das entsprechende Vollbild-JPG(Maxbreite 400Pixel) in ein vordefiniertes Verzeichniss auf den Server geladen werden!

Hinweis:
Die Bilddateien sollen nicht mit ihrem ursprünglichen Dateinamen abgespeichert werden! Vielmehr wird der Dateiname durch eine Fortlaufende Nummer ersetzt!
Diese Nummer ist bei Preview und Vollbild identisch.

Zu dem jeweiligen Bild sollen u.a. Titel und Beschreibungstext gespeichert werden!

Meine Frage ist nun, ob man durch die Betätigung eines einzigen Aktionsbuttons in einem Formular den Upload starten und gleichzeitig das ablegen von Titel und Beschreibungstext in eine Tabelle ausführen kann?


Die Tabell "Bilder" soll in etwa so aussehen:

id: (Integer, autoinc, Primary-Key)
aktiv: (Tiny) 0= Bild wird in Gallerie nicht angezeigt / 1= Bild wird angezeigt
titel: (Varchar) Bezeichnung des Bildes
beschreibung: (Varchar) Erläuterungen zum Bild
preview-id: (Integer, autoinc)
vollbild-id:(Integer, autoinc)


Vorab Danke für eure Tipps

Dirk

MatMel
07.10.2006, 13:32:14
Durch das klicken des Aktionsbuttons wirst du ja auf eine andere Seite weitergeleitet, auf der du dann die Daten, die per Formular versandt wurden, verarbeiten kannst.
Selbstverständlich kannst du da auch Datenbankeinträge erstellen.

UncleKracker
07.10.2006, 16:17:16
Hi MatMel!

Also ich habe jetzt erst mal versucht das Vollbild und das Vorschaubild gleichzeitig hochzuladen. Die Skripte funktionieren soweit, bis auf die Tatsache, dass die JPG-Files nicht auf dem Server gespeichert werden!

Wo liegt in dem folgenden Code der Fehler?

bilder_neu.php

<?php
// Bild-ID ermitteln
$selectquery = 'SELECT MAX(id) FROM bilder_test';
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);

list($maxid) = mysql_fetch_row($selecterg);
$maxid++;

echo '<form enctype="multipart/form-data" action="bilder_action.php?modus=neu" method="post">';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">';
echo '<input type="hidden" name="bild_id" value="'.$maxid.'">';
echo '<table border=1>';
echo '<tr><td>Vollbild</td>';
echo '<td><input name="userfile1" type="file" size="50"></td></tr>';
echo '<tr><td>Vorschaubild</td>';
echo '<td><input name="userfile2" type="file" size="50"></td></tr>';
echo '</table>';
echo '<input type="submit" value="Bilder hochladen">';
echo '</form>';
?>


bilder_action.php

<?php
include

if ($_GET["modus"] == 'neu') {

if (is_uploaded_file($_FILES['userfile1']['size']) > 100000) {
echo 'Das Vollbild ist zu gro&szlig; (es sind maximal 100 kb erlaubt).';
exit;
}

if (is_uploaded_file($_FILES['userfile2']['size']) > 100000) {
echo 'Das Vorschaubild ist zu gro&szlig; (es sind maximal 100 kb erlaubt).';
exit;
}

$bildinfos1 = GetImageSize($_FILES['userfile1']['tmp_name']);
$bildinfos2 = GetImageSize($_FILES['userfile2']['tmp_name']);

if ($bildinfos1[0] > 400) {
echo 'Das Vollbild ist breiter als erlaubt (maximal 400 Pixel)';
exit;
}

if ($bildinfos2[0] > 120) {
echo 'Das Vorschaubild ist breiter als erlaubt (maximal 120 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;
}

$insertquery = 'INSERT INTO bilder_test
(id, vollbild_id, preview_id)
VALUES ("'.$_POST["bild_id"].'", "'.$_POST["bild_id"].'", "'.$_POST["bild_id"].'")';
$inserterg = mysql_db_query($db_name, $insertquery, $verbindung);

$bild_id = mysql_insert_id($verbindung);

$bild_datei1 = $bild_id.'.jpg';
$bild_datei2 = $bild_id.'preview.jpg';
$bild_url_intern1 = '/htdocs/galerie/'.$bild_datei1;
$bild_url_intern2 = '/htdocs/galerie/'.$bild_datei2;
$bild_url_extern1 = 'http://www.muster.de/galerie/'.$bild_datei1;
$bild_url_extern2 = 'http://www.muster.de/galerie/'.$bild_datei2;

copy($_FILES['userfile1']['tmp_name'], $bild_url_intern1);
copy($_FILES['userfile2']['tmp_name'], $bild_url_intern2);

echo 'Das Vollbild wurde als '.$bild_datei1.' und das Vorschaubild als '.$bild_datei1.' auf den Server &uuml;bertragen und gespeichert!';
}
?>


includes habe ich aus sicherheitsgründen weggelassen!

MatMel
07.10.2006, 22:52:21
Ich sehe so spontan keinen Fehler...
Hast du mal durch Ausgaben überprüft ob alle Werte (Pfadangaben etc.) stimmen? Und hast du mal auf dem Server rumgesucht ob die Bilder vielleicht wo anders gelandet sind ?

Andes
07.10.2006, 23:17:46
Wieso hast du bei Ziel das Verzeichnis 'htdocs' angegeben? htdocs ist doch normalerweise das Rootverzeichnis deines Werbspace. In dem deine Dateien liegen und ausgeführt werden. Entweder müsstest du dann vom Serverroot aus die Verzeichnisse (wenn du dies überhaupt kannst) oder nur das Verzeichnis galerie angeben.

UncleKracker
08.10.2006, 01:40:11
MatMel ich habe deinen Rat befolgt und auf dem Server noch mal nach den Bildern gesucht und musste verwundert feststellen, dass sie plötzlich im korrekten Verzeichnis zu finden waren!

Kann es evtl. sein, dass Bilder (bzw. Dateien generell) mit einer gewissen Verzögerung auch auf dem Server angezeigt werden?

Als ich nämlich direkt nach Ausführung des Uploads im Zielverzeichnis nachgesehen habe, waren keine Dateien zu finden!

---

Vielleicht kannst du mir aber einen Tipp geben, wie ich es verhindnern kann, dass die insert-Anweisung(sowie das eigentliche Upload) auch dann ausgeführt werden, wenn über das Formular nur eines der beiden Bilder angeben wurde?

Serp
08.10.2006, 02:41:29
Einfach zunächst prüfen, ob für userfile1 und userfile2 ein gültiges Bild angegeben worden ist und wenn nein abbrechen.

Ach ja, du weißt, dass PHP das Thumbnail theoretisch selber erstellen könnte, wenn du das haben willst?

meikel (†)
08.10.2006, 03:21:05
Meine Frage ist nun, ob man durch die Betätigung eines einzigen Aktionsbuttons in einem Formular den Upload starten und gleichzeitig das ablegen von Titel und Beschreibungstext in eine Tabelle ausführen kann?
Ja, das kann man, wenn man es kann. Bei einem POST Request kann man nicht nur ne Datei befördern sondern auch noch diverse Texte in Textfeldern usw.

Vorab Danke für eure Tipps
Wat für Tips? Script mußte schon selber tippern.

Teil 2:
Script haste getippert und gepostet.
Wo liegt in dem folgenden Code der Fehler?
Wie lautet die Fehlermeldung? Oder muß man die selber rauskriegen? <grrrr>

meikel (†)
08.10.2006, 03:25:46
Ach ja, du weißt, dass PHP das Thumbnail theoretisch selber erstellen könnte, wenn du das haben willst?
Obacht, Serp. Das geht theoretisch so lange gut, wie das 'ausgewickelte JPG' noch in den 8-MB Scriptpseicher paßt. Alles ander schlägt hier auf mit der Fehlerbeschreibung "funzt nicht".

UncleKracker
08.10.2006, 18:24:34
Ich habe mein Script jetzt um eine Prüfung ergänzt, um sicherzustellen, dass immer Voll- und Vorschaubild gleichzeitig hochgeladen werden!


<?php
if ($_GET["modus"] == 'neu')
{
if (empty($userfile1) AND empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde entsprechende Bilder auszuw&auml;hlen!';
}
elseif (empty($userfile1) AND !empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde ein Vollbild auszuw&auml;hlen!';
exit;
}
elseif (!empty($userfile1) AND empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde ein Vorschaubild auszuw&auml;hlen!';
exit;
}
else
{
if (is_uploaded_file($_FILES['userfile1']['size']) > 100000) {
echo 'Das Vollbild ist zu gro&szlig; (es sind maximal 100 kb erlaubt).';
exit;
}

if (is_uploaded_file($_FILES['userfile2']['size']) > 100000) {
echo 'Das Vorschaubild ist zu gro&szlig; (es sind maximal 100 kb erlaubt).';
exit;
}

$bildinfos1 = GetImageSize($_FILES['userfile1']['tmp_name']);
$bildinfos2 = GetImageSize($_FILES['userfile2']['tmp_name']);

if ($bildinfos1[0] > 400) {
echo 'Das Vollbild ist breiter als erlaubt (maximal 400 Pixel)';
exit;
}

if ($bildinfos2[0] > 120) {
echo 'Das Vorschaubild ist breiter als erlaubt (maximal 120 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;
}

$insertquery = 'INSERT INTO bilder_test
(id, vollbild_id, preview_id)
VALUES ("'.$_POST["bild_id"].'", "'.$_POST["bild_id"].'", "'.$_POST["bild_id"].'")';
$inserterg = mysql_db_query($db_name, $insertquery, $verbindung);

$bild_id = mysql_insert_id($verbindung);

$bild_datei1 = $bild_id.'.jpg';
$bild_datei2 = 'preview_'.$bild_id.'.jpg';
$bild_url_intern1 = '../galerie/'.$bild_datei1;
$bild_url_intern2 = '../galerie/'.$bild_datei2;

copy($_FILES['userfile1']['tmp_name'], $bild_url_intern1);
copy($_FILES['userfile2']['tmp_name'], $bild_url_intern2);

echo 'Das Vollbild wurde als <b>'.$bild_datei1.'</b> und das Vorschaubild als <b>'.$bild_datei1.'</b> auf den Server &uuml;bertragen und gespeichert!';
}
}
?>



Leider habe ich bisher noch keine geeigneten(bzw. mir verständliche) Hinweise erhalten oder im Forum gefunden, wie man es realisieren kann, per Formular im Script bilder_neu.php , direkt Bildtitel und Beschreibungstext in die Datenbankeinzulesen!

Aus diesem Grund habe ich mich dazu entschlossen die Kommentierung nachträglich durchzuführen!

Dies soll folgendermaßen ablaufen:

- in einer HTML-Tabelle sollen alle bisher hochgeladenen Bilder ausgegeben werden
- es sollen dabei maximal 8 Bilder/Zeile und 3 Zeilen/Seite dargestellt werden
- über das Anklicken eines Bildes wird ein Formular geöffnet, mit dem die Kommentierungangaben dem jeweiligen Bild zugewiesen(in die Datenbank geschrieben) werden

Hier seht ihr nun, wie weit ich mit dem Script schon gekommen bin!
Da ich die Modulo-Operatoin nicht 100% verstanden habe, würde ich gerne von euch wissen, ob ich sie korrekt und mit den richtigen Werten verwendet habe!



<?php

// ermitteln ob schon Bilder vorhanden sind
$selectquery = 'SELECT MAX(preview_id) FROM bilder_test';
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);
list($anzahlbilder) = mysql_fetch_row($selecterg);

if (!$anzahlbilder)
{
echo 'Es k&ouml;nnen noch keine Beschreibungen verfasst werden, weil noch keine Bilder vorhanden sind!';
exit;
}
else
{
echo 'F&uuml;r folgende Bilder wurde noch keine Beschreibung erstellt!<br>Um eine Beschreibung zu erstellen einfach das gew&uuml;scht Bild anklicken!';

$bilderprozeile = 8; $zeilenproseite = 3;

// Stellt sicher, dass für übersch!
$anzahlzeilen = ceil($anzahlbilder / $bilderprozeile);

// Garantieren, dass auch bei weniger als 3 Zeilen eine Seite ausgegeben wird!
$anzahlseiten = ceil($anzahlzeilen / $zeilenproseite);

$seite = intval($_GET["seite"]);

$offset = ($seite-1)*$zeilenproseite;

$selectquery = 'SELECT preview_id FROM bilder_test ORDER by ASC LIMIT '.$offset.', '.$zeilenproseite;
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);

while (list (preview_id) = mysql_fetch_row($selecterg)))
{
echo '<table><tr>';
for ($counter=0; $counter<$bilderprozeile; $counter++)
{
// Ausgabe des Bildes
echo '<td><a href="bildtext_aendern.php?id=NEU"><img src="../galerie/preview_'.preview_id.'.jpg"></a></td>';
// Modulo-Operation
if ($counter % 8 == 7 && $counter < $counter - 1) { echo '</tr><tr>'; }
}

// sind für eine Zeile nicht genug Bilder vorhanden wird der Rest mir leeren Feldern gefüllt
$counter2 = $counter % 8;

if ($counter2 < 8)
{
for ($counter2; $counter2<8; $counter2++) { echo '<td></td>'; }
}
echo '</tr></table>';
}

echo '<p>';
if ($seite > 1) { echo '<a href="bildtext_aendern.php?seite='.($seite-1).'">vorherige Seite</a>&nbsp;&nbsp;&nbsp;'; }
if ($seite < $anzahlseiten) { echo '<a href="bildtext_aendern.php?seite='.($seite+1).'">n&auml;chste Seite</a>'; }
echo '</p>';
}
?>

Andes
08.10.2006, 18:44:05
Meikel hatte dir in Beitrag #8 schon geschrieben, dass dies geht.
Du baust dir ein Formular in dem entsprechende Felder und deine File-Felder enthalten sind.
Nach dem Senden kannst du die Bilddateien per $_File und die Texte per $_POST auslesen, verarbeiten und in deine DB speichern.

UncleKracker
08.10.2006, 20:04:34
Danke Andes, dieses Posting habe ich wohl übersehen!

Trotzdem würde es mich interessieren, ob mein Ansatz für die tabellarische Darstellung der Bilder korrekt ist und meiner Vorstellung entsprechend funktionieren würde!

Da ich dies dann für die Galerie-Anzeige im Frontend verwenden könnte!

MfG

Dirk

UncleKracker
10.10.2006, 20:08:45
Ich habe jetzt zwei Schript verfasst, mit dem gleichzeitig Bilder hochgeladen und die dazu gehörigen Beschreibunge in die DB-Tabelle geschrieben werden sollen!

1. Script: galeriebeitrag_aendern.php

$selectquery = 'SELECT id, aktiv, kategorie, titel, beschreibung, jahrgang,
FROM bilder_test
WHERE id = "'.$_GET["id"].'"';
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);

echo '<b>ACHTUNG!</b><br>';
echo 'Auf der Homepage werden nur die Bilder angezeigt f&uuml;r die Kategorie, Titel, Beschreibung und Jahrgang angegeben wurden!<br>';

echo '<form enctype="multipart/form-data" action="galeriebeitrag_aendern_action.php" method="post">';

if ((list ($bilder_id, $bilder_kategorie, $bilder_titel, $bilder_beschreibung, $bilder_jahrgang) = mysql_fetch_row($selecterg)) OR ($_GET["id"]=="NEU"))
{
if ($_GET["id"] == "NEU") {
echo '<input name="modus" type="hidden" value="NEW">';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">';
$bilder_id = 'wird automatisch vergeben';
echo 'Vollbild und Vorschaubild m&uuml;ssen immer beide gleichzeitig hochgeladen werden; ansonsten erfolgt ein Abbruch!';
echo '<table border="1">';
echo '<tr><td>Galeriebeitrag-ID</td><td>'.$bilder_id.'</td></tr>';
echo '<tr><td>Vollbild (400 Pixel breit)</td>';
echo '<td><input name="userfile1" type="file" size="50"></td></tr>';
echo '<tr><td>Vorschaubild (120 Pixel breit)</td>';
echo '<td><input name="userfile2" type="file" size="50"></td></tr>';
}
else {
echo '<input name="modus" type="hidden" value="EDIT">';
echo '<input name="in_id" type="hidden" value="'.$bilder_id.'">';
echo '<table border="1">';
echo '<tr><td>Galeriebeitrag-ID</td><td>'.$bilder_id.'</td></tr>';
echo '<tr><td>Bild</td><td><img src="../galerie/preview_'.bilder_id.'.jpg"></td></tr>';
}

echo '<tr><td>Kategorie</td><td>';
echo '<select name="in_kategorie">';

if ($bilder_kategorie == "1") {
echo ' <option value="1" selected>Bilder</option>';
echo ' <option value="2">Skulpturen</option>';
echo ' <option value="0">Ausstellungen</option>';
}
elseif ($bilder_kategorie == "2") {
echo ' <option value="1">Bilder</option>';
echo ' <option value="2" selected>Skulpturen</option>';
echo ' <option value="0">Ausstellungen</option>';
}
else {
echo ' <option value="1">Bilder</option>';
echo ' <option value="2">Skulpturen</option>';
echo ' <option value="0" selected>Ausstellungen</option>';
}
echo '</select>';
echo '</td></tr>';
echo '<tr><td>Titel</td><td><input name="in_titel" type="text" value="'.$bilder_titel.'"></td></tr>';
echo '<tr><td valign="top">Beschreibung</td><td><textarea name="in_beschreibung" rows="10" cols="60">'.$bilder_beschreibung.'</textarea></td></tr>';
echo '<tr><td>Jahrgang</td><td><input name="in_jahrgang" type="text" value="'.$bilder_jahrgang.'"></td></tr>';
echo '</td></tr>';
echo '</table>';
echo '<input type="submit" value="Angaben speichern">';
echo '</form>';
}
else {
echo '<p>Fehler in der Verarbeitung!</p>';
}



Solange neue Galeriebeiträge eingestellt werden wird dieses Script problemlos druchlaufen.
Aus irgendeinem Grund wird jedoch die fett dargestellt else-Anweisung nicht ausgeführt, sobald ein bestehender Beitrag nur bearbeitet werden soll.
Also immer dann wenn "id" von der vorherigen Seite ein Zahlenwert übergeben wurde(z.B. 3).

Warum ist das so?


2. Script: galeriebeitraege_aendern_action.php

if ($_POST["modus"] == "NEW") {

// Ermitteln wieviel Bilder/Beiträge schon hochgeladen wurden
$selectquery = 'SELECT MAX(id) FROM bilder_test';
$selecterg = mysql_db_query($db_name, $selectquery, $verbindung);
list($maxid) = mysql_fetch_row($selecterg);
$maxid++;

if (empty($userfile1) AND empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde entsprechende Bilder auszuw&auml;hlen!';
}
elseif (empty($userfile1) AND !empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde ein Vollbild auszuw&auml;hlen!';
exit;
}
elseif (!empty($userfile1) AND empty($userfile2))
{
echo 'Der Upload wurde nicht gestartet, weil vergessen wurde ein Vorschaubild auszuw&auml;hlen!';
exit;
}
else
{
if (is_uploaded_file($_FILES['userfile1']['size']) > 100000) {
echo 'Das Vollbild ist zu gro&szlig; (es sind maximal 100 kb erlaubt).';
exit;
}

if (is_uploaded_file($_FILES['userfile2']['size']) > 100000) {
echo 'Das Vorschaubild ist zu gro&szlig; (es sind maximal 100 kb erlaubt).';
exit;
}

$bildinfos1 = GetImageSize($_FILES['userfile1']['tmp_name']);
$bildinfos2 = GetImageSize($_FILES['userfile2']['tmp_name']);

if ($bildinfos1[0] > 400) {
echo 'Das Vollbild ist breiter als erlaubt (maximal 400 Pixel)';
exit;
}

if ($bildinfos2[0] > 120) {
echo 'Das Vorschaubild ist breiter als erlaubt (maximal 120 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;
}

//$insertquery = 'INSERT INTO bilder_test (id, vollbild_id, preview_id)
// VALUES ("'.$_POST["bild_id"].'", "'.$_POST["bild_id"].'", "'.$_POST["bild_id"].'")';
//$inserterg = mysql_db_query($db_name, $insertquery, $verbindung);

//$bild_id = mysql_insert_id($verbindung);

$bild_datei1 = $bild_id.'.jpg';
$bild_datei2 = 'preview_'.$bild_id.'.jpg';
$bild_url_intern1 = '/kunden/homepages/35/d169134893/htdocs/galerie/'.$bild_datei1;
$bild_url_intern2 = '/kunden/homepages/35/d169134893/htdocs/galerie/'.$bild_datei2;

copy($_FILES['userfile1']['tmp_name'], $bild_url_intern1);
copy($_FILES['userfile2']['tmp_name'], $bild_url_intern2);

// Prüfen, ob der neue Galeriebeitrag auf "aktiv" gesetzt werden kann!

if (!empty($bilder_kategorie) AND !empty($bilder_titel) AND !empty($bilder_beschreibung) AND !empty($bilder_jahrgang)) {
$in_aktiv = 1; }
else { $in_aktiv = 0; }

$insertquery = 'INSERT INTO bilder_test
(id, aktiv, kategorie, titel, beschreibung, jahrgang, vollbild_id, preview_id)
VALUES ("'.$_POST["maxid"].'", "'.$in_aktiv.'", "'.$_POST["in_kategorie"].'", "'.$_POST["in_titel"].'", "'.$_POST["in_beschreibung"].'", "'.$_POST["in_jahrgang"].'", "'.$_POST["maxid"].'", "'.$_POST["maxid"].'")';
$inserterg = mysql_db_query($db_name, $insertquery, $verbindung);

echo 'Das Vollbild wurde als <b>'.$bild_datei1.'</b> und das Vorschaubild als <b>'.$bild_datei1.'</b> auf den Server &uuml;bertragen und gespeichert!';
echo 'Der Galeriebeitrag wurde unter der ID: '.$maxid.' abgelegt.';
}

else
{

$updatequery = 'UPDATE bilder_test
SET kategorie = "'.$_POST["in_kategorie"].'", titel = "'.$_POST["in_titel"].'", beschreibung = "'.$_POST["in_beschreibung"].'", jahrgang = "'.$_POST["in_jahrgang"].'"
WHERE id="'.$_POST["in_id"].'" AND vollbild_id="'.$_POST["in_id"].'" AND preview_id="'.$_POST["in_id"].'"';
//echo $updatequery;
$updateerg = mysql_db_query($db_name, $updatequery, $verbindung);

echo 'Der Galeriebeitrag: '.$_POST["in_id"].' wurde erfolgreich ge&auml;ndert und gespeichert.';
}
?>


Wenn ich einen neuen Beitrag anlege wird das zweite Script mit der folgenden Fehlermeldung in der markieten Ziele quotiert!


Parse error: parse error, unexpected T_ELSE in /homepages/35/d169134893/htdocs/backend/galeriebeitrag_aendern_action.php on line 97


Welchen Grund hat das?

Andes
10.10.2006, 20:35:05
Da fehlt eine abschließende Klammer für das 'if'.

UncleKracker
11.10.2006, 00:31:22
Da fehlt eine abschließende Klammer für das 'if'.

Welches 'if' meinst du?

MfG

Dirk

Andes
11.10.2006, 00:48:13
if ($_POST["modus"] == "NEW") {
//Dein ´Script
} //<-- hier gehört noch diese Klammer hin
else
{
//Dein ´Script
}

UncleKracker
11.10.2006, 02:19:23
OK danke Andes!

Aber hast du auch eine Erklärung warum im 1. Script (galeriebeitrag_aendern.php) die folgende else-Anweisung nicht ausgeführt - also übersprungen - wird?


else {
echo '<input name="modus" type="hidden" value="EDIT">';
echo '<input name="in_id" type="hidden" value="'.$bilder_id.'">';
echo '<table border="1">';
echo '<tr><td>Galeriebeitrag-ID</td><td>'.$bilder_id.'</td></tr>';
echo '<tr><td>Bild</td><td><img src="../galerie/preview_'.bilder_id.'.jpg"></td></tr>';
}

Andes
11.10.2006, 10:21:39
Bei deinem Formular aus Beitrag #1 fehlt die abschließende spitze Klammer bei dem einleitenden Form-Tag.
Kann es sein, dass in der Adresszeile noch die Variable 'id' an der URL hängt?

UncleKracker
11.10.2006, 15:32:02
Bei deinem Formular aus Beitrag #1 fehlt die abschließende spitze Klammer bei dem einleitenden Form-Tag.
Kann es sein, dass in der Adresszeile noch die Variable 'id' an der URL hängt?

Also bei dem angesprochenen Form-Tag ist die abschließende spitze Klammer vorhanden; du kannst sie auch sehen wenn du das Script nach rechts scrollst!

Die URL sieht in der Adresszeile, nach dem Aufruf, wie folgt aus:

1. Bei einem neue anzulegenden Beitrag

http://www.klaus-suessmann-mus.de/backend/galeriebeitrag_aendern.php?id=NEU

2. Bei einem zu bearbeitenden Beitrag (in diesem Fall Nr. 8)

http://www.klaus-suessmann-mus.de/backend/galeriebeitrag_aendern.php?id=8

Und dies ist auch richtig so!
Aus mir unerklärlichen Gründen wird jedoch im zweiten Fall der Wert für 'id' nicht richtig übermittelt.

Was ich nicht verstehen kann, da im ersten Fall der Wert 'NEU' ja problemlos interpretiert wird!

Andes
11.10.2006, 17:22:34
Bist du dir sicher, dass deine Abfrage auch ein Ergebnis zurückliefert?
Ich würde mal sagen, eher nicht. Du hast zwischen 'jahrgang' und FROM ein Komma stehen, welches da nicht hin gehört.

UncleKracker
11.10.2006, 19:20:24
Bist du dir sicher, dass deine Abfrage auch ein Ergebnis zurückliefert?
Ich würde mal sagen, eher nicht. Du hast zwischen 'jahrgang' und FROM ein Komma stehen, welches da nicht hin gehört.

Verfluchte Betriebsblindheit ;-) !!!
Ich fürchte ich habe in dieser Woche schon so viel Code getippt, dass mir solche Kleinigkeiten garnicht mehr auffallen!

Daher danke ich dir erneut für deiner guten Fähigkeiten im Korrekturlesen!

MfG

Dirk