SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.10.2006, 13:26:37
UncleKracker UncleKracker ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 37
Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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
Mit Zitat antworten
  #2  
Alt 07.10.2006, 13:32:14
MatMel MatMel ist offline
Member
 
Registriert seit: Aug 2005
Beiträge: 644
MatMel eine Nachricht über ICQ schicken
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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.
Mit Zitat antworten
  #3  
Alt 07.10.2006, 16:17:16
UncleKracker UncleKracker ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 37
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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-Code:
<?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-Code:
<?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!
Mit Zitat antworten
  #4  
Alt 07.10.2006, 22:52:21
MatMel MatMel ist offline
Member
 
Registriert seit: Aug 2005
Beiträge: 644
MatMel eine Nachricht über ICQ schicken
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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 ?
Mit Zitat antworten
  #5  
Alt 07.10.2006, 23:17:46
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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.
__________________
Grüße Andes
Mit Zitat antworten
  #6  
Alt 08.10.2006, 01:40:11
UncleKracker UncleKracker ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 37
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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?
Mit Zitat antworten
  #7  
Alt 08.10.2006, 02:41:29
Benutzerbild von Serp
Serp Serp ist offline
Member
 
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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?
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')

Für 100% sauberen Code.
Mit Zitat antworten
  #8  
Alt 08.10.2006, 03:21:05
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

Zitat:
Zitat von UncleKracker
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.

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

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

Geändert von meikel (†) (08.10.2006 um 03:23:14 Uhr)
Mit Zitat antworten
  #9  
Alt 08.10.2006, 03:25:46
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

Zitat:
Zitat von Serp
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".
Mit Zitat antworten
  #10  
Alt 08.10.2006, 18:24:34
UncleKracker UncleKracker ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 37
AW: Wie kann ich ein Bild hochladen und gleichzeitig Beschreibungstext einlesen?

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

PHP-Code:
<?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-Code:
<?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 == && $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>';
}
?>
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
graustufen bild erzeugen in realtime djshj PHP für Fortgeschrittene und Experten 4 03.09.2006 03:03:38
Bilderupload bild anzeigen vor senden Fridleif HTML, CSS und JavaScript Help! 7 18.04.2005 18:26:21
bild im bild if (bild == hochstehend) phpTarzan PHP für Fortgeschrittene und Experten 5 29.01.2005 17:44:09
http header bild und html-text gleichzeitig stefano franko PHP für Fortgeschrittene und Experten 2 18.12.2003 12:57:14
Bild: align=left, nächster Absatz soll unter dem Bild beginnen! mad-boy HTML, CSS und JavaScript Help! 2 24.08.2003 21:11:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:57:30 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt