• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Bild Datei nur ausgeben wenn es vorhanden ist ?

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
Hallo Community,

ich habe folgendes Problem. Ich habe vor geraumer Zeit ein Upload-Script geschrieben was auch einwandfrei funktioniert. Auch das auslesen und Anzeigen der einzelnen Bilder funktioniert super. Doch ehrlich gesagt wünsche ich es mir das die Bilder von alleine auf meiner Website ausgegeben werden, ohne dass ich jedes mal den Tag "<img src="../PHPversion/upload/bild_user<?php echo $userid ?>_1" width="100%" height="auto"> " eingeben muss.

Das heißt ich würde zum einen gerne so eine Art AUTO Version davon haben, so dass wenn ein Bild hochgeladen wird dieses auch ausgegeben wird. Dabei soll es egal sein wie viele Bilder ein User bereits hochgeladen hat. Alles was der User hochgeladen hat soll automatisch ausgelesen und angezeigt werden.

Des Weiteren kommt es durch diese einzelnen Zeilen (siehe das Fettgedruckte) dazu das ein kleines blaues Icon mit Fragezeichen erzeugt wird sobald kein Bild vorhanden ist. Das heißt ich würde es mir wünschen wenn die Bilder erst ausgegeben werden wenn sie auch vorhanden sind.

Ich hoffe ihr versteht mein Problem.

Hier nochmal mein Upload-Script falls dies von irgendeiner Relevanz ist :)
Code:
<?php
session_start();
if(!isset($_SESSION['userid'])) {
    die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
$userid = $_SESSION['userid'];

$upload_folder = 'upload/'; //Das Upload-Verzeichnis
$filename = "profilbild_user".$userid;
$extension = strtolower(pathinfo($_FILES['datei']['name'], PATHINFO_EXTENSION));

 
//Überprüfung der Dateiendung
$allowed_extensions = array('png', 'jpg', 'jpeg', 'gif',);
if(!in_array($extension, $allowed_extensions)) {
    die("Ungültige Dateiendung. Nur png, jpg, jpeg und gif-Dateien sind erlaubt");
}
 
//Überprüfung der Dateigröße
$max_size = 4000*1024; //4000 MB
if($_FILES['datei']['size'] > $max_size) {
    die("Bitte keine Dateien größer 4mb hochladen");
}

//Überprüfung dass das Bild keine Fehler enthält
if(function_exists('exif_imagetype')) { //Die exif_imagetype-Funktion erfordert die exif-Erweiterung auf dem Server
    $allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF,);
    $detected_type = exif_imagetype($_FILES['datei']['tmp_name']);
    if(!in_array($detected_type, $allowed_types)) {
        die("Nur der Upload von Bilddateien ist gestattet");
    }
}
 
//Pfad zum Upload
$new_path = $upload_folder.$filename.'.'.$extension;
 
//Neuer Dateiname falls die Datei bereits existiert
if(file_exists($new_path)) { //Falls Datei existiert, hänge eine Zahl an den Dateinamen
    $Anzahl = 1;
    do {
        $new_path = $upload_folder.$filename.'_'.$Anzahl.'.'.$extension;
        $Anzahl++;
    } while(file_exists($new_path));
}
 
//Alles okay, verschiebe Datei an neuen Pfad
move_uploaded_file($_FILES['datei']['tmp_name'], $new_path);
echo 'Bild erfolgreich hochgeladen, zur&uumlck zur <a href="loogin.php">Startseite</a>';
?>
 

zilVerGFX

Macoun
Registriert
26.12.08
Beiträge
118
Wenn ich das jetzt korrekt verstanden habe, möchtest du gerne folgendes:

1.) Benutzer können bei dir verschiedene Bilder hochladen.
2.) Du möchtest eine Seite haben, auf welcher der Benutzer alle Bilder sehen kann, welche er bereits hochgeladen hat.


Lösen könntest du dein Problem dann wie folgt:

1.)
Du legst dir eine neue Datenbank-Tabelle für File-Uploads, mit einem Fremdschlüssel zu deiner Benutzer-Tabelle, an.
Somit kannst du File-Uploads eindeutig einem bestimmten Benutzer zuordnen.

2.)
Bei jedem erfolgreichen File-Upload speicherst du nun deinen "$new_path" sowie die User-Id (Fremdschlüssel) in deiner File-Uploads-Tabelle.

3.)
Um jetzt alle Bilder für den eingeloggten Benutzer anzuzeigen, formulierst du eine SQL-Query wie beispielsweise:
Code:
SELECT file_path FROM file_uploads WHERE user_id=?....


Hoffe das hilft dir etwas weiter :)