• 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

PHP Schreibweise

ThisIsBeat

Empire
Registriert
02.02.16
Beiträge
85
Hallo Community,

hier erstmal mein Code und dann mein Problem :)
Code:
<?php
$userid = $_SESSION['userid'];

$test = "http://localhost/PHPversion/upload/profilbild_user$userid";
if (getimagesize($test)) {
    echo "<img class='bild' src='".$test."' alt='Bild' style='width: 50%; min-width: 100px; max-width: 300px; border-radius: 5px; border-style: double; border-color: gray; border-width: 1px; margin-left: 40px; margin-top: 25px; height: 300px; margin-bottom: 25px; box-shadow: 0px 8px 20px 0px gray; '>";
} else {
    echo "Datei nicht vorhanden";
}
?>

Also wie ihr seht habt ich ein Script geschrieben das dazu dient zu überprüfen ob ein Bild existiert oder nicht. Das ganze funktioniert auch soweit ganz gut doch das Problem das ich habe ist, dass wenn das Bild nicht vorhanden ist ein Fehlercode angezeigt wird.

Nämlich so:

Warning: getimagesize(http://localhost/PHPversion/upload/profilbild_user29.): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /Library/WebServer/Documents/PHPversion/Menu_Link_22log.php on line 240
Datei nicht vorhanden

Wie kriege ich es hin das nur noch "Datei nicht vorhanden" da steht, ohne dem ganzen Fehler ?
Außerdem habe ich noch ein weiteres Problem und zwar bekommen alle hochgeladenen Bilder bei mir den selben Namen und wenn es mehrere Bilder mit dem selben Namen gibt, werden diese einfach hochgezählt in dem eine Zahl an die Datei angehangen wird.

Nämlich so:
profilbild_user1
profilbild_user1_1
profilbild_user1_2
usw...

Nun habe ich meine Variable aber folgendermaßen definiert:
$test = "http://localhost/PHPversion/upload/profilbild_user$userid";

Wie kann ich das ganze schreiben so das auch die Bilder ausgelesen werden die vermeintlich doppelt vorhanden sind und eine Zahl angehangen bekommen haben ?
 

pzr

Schöner von Nordhausen
Registriert
04.02.09
Beiträge
324
if (@getimagesize($test))
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Hi, die Fehlermedlugn kommt daher, dass du Infos von einem nicht vorhandenen Bild abfragen willst. Kann man mit nem @ natürlich unterdrücken, aber sauberer wäre, du würdest vorher abfragen, ob das Bild überhaupt vorhanden ist. Das geht z.b. mit

PHP:
$bildpfad = "/var/www/vhosts/..../profilbild_user".$userid;
if(file_exists($bildpfad)){
   //Hier dann deinen Code inkludieren
}

Und du müsstest den Pfad abfragen, also nicht die URL zum Bild wie in deiner Variablen $test. Wobei du dann die Funktion getimagesize eigentlich gar nicht mehr benötigst.
 
  • Like
Reaktionen: SebiFei28