Richtig tolles Tutorial und das Thema Sicherheit kommt auch nicht zu kurz. Danke dafür! ^^ Übrigens, bei vielen Scripten die man zum Thema Fileupload findet, beinhalten genau diese Fehler, die zu erwähnt hattest. Leider wissen viele das nicht und kopieren sich dann diese unsicheren Scripte auf ihren Server.
Dankeschön, ja ich habe leider selbst diese Fehler früher kopiert und wurde selbst gehackt. Deshalb kenne ich diese Sicherheitsprobleme. Vielleicht muss man in der Entwicklung erstmal auf die Nase Fallen und es muss richtig wehtun damit man sich mit dem Thema auseinandersetzt
@@VitalijMik Hauptsache ist ja, man hat daraus gelernt. Dein Code sieht auch sauber aus, also soweit ich das beurteilen kann. Code ist auch ein stück weit Poesie ^^
Super Video gut erklärt, den Punkt mit der Sicherheitslücke wird selten angesprochen --> weiter so :) - ein Video mit einer Processbar würde mich auch interessieren
Hallo Vitalij, happy friday :) ich wollte mal fragen wie viele Websiten du schon erstellt hast und ob manche von denen dir ein Einkommen bescheren :) Liebe Grüße :)
Wo wir gerade beim Upload sind. Wäre es möglich das du mal ein Tutorial machst wo ein Upload mit einer Processbar machen? Also eine Anzeige mit 0% bis 100% hochgeladen. Oder mit einer Anzeige Datei 1 wurde hogleaden; Datei 2 wurde hochgeladen usw.
Nein weil PHP Seitig zeigst du ja alles dann an wenn der Upload schon zu 100% durchgelaufen ist. Damit du so eine Anzeige hast, musst du Javascript Seitig deine Datei in Einzelteile zerlegen und einzelen Bytes hochladen
@@VitalijMik Es gibt doch seit einiger Zeit PECL :: uploadprogress und seit PHP 5.4 session.upload-progress... www.php.net/manual/de/session.upload-progress.php In Verbindung mit JavaScript/Ajax ist eine Progressbar möglich. Selbst umgesetzt habe ich es damit noch nicht.
@@ShadowByte666 ja genau, aber du brauchst ja da javascript und du musst die Datei in einzelne Blobs aufteilen. PHP Seitig wird sich da nichts ändern, auf dem Server bleib alles gleich, du hast halt in parallel ein Ajax request der aus der Session ausliest wieviele Bytes hochgeladen sind.
hallo ein guter Video ich würde gern mit php oder HTML einen bild upload und Bild delete erstellen da ich auf meinem seite einen bilder galerie einfügen möchte . würde das dann auf die seite includen wenn ich ein bild eingefügt habe müsste ich auch diesen bild löschen können . danke
Vitalij Mik kannst du bei der Gelegenheit noch eine Funktion einbauen, die Bilder mehrfach in vordefinierten Bildgrössen abspeichern, damit man responsive dann ein anderes Bildformate anzeigen lassen kann? Wäre mega cool 🤙🏻
Moin moin, ich hab da so ein Problem😅 Und zwar verstehe ich nicht, warum bei mir auch ein leer abgesendetes Form durch folgendes if-statement durchgeht: $hasFiles = isset($_FILES['datei']) && count($_FILES['datei']) > 0; if($hasFiles){......} Mein Array sieht dann auch leer aus aber ich verstehe nicht warum es trotzdem durchgeht. Mein Array, wenn ich es mit print_r ausgeben lasse ohne datei im Form falls es dir irgendwas bringt: Array ( [name] => Array ( [0] => ) [type] => Array ( [0] => ) [tmp_name] => Array ( [0] => ) [error] => Array ( [0] => 4 ) [size] => Array ( [0] => 0 )) Schon mal danke im voraus😄
@@VitalijMik und was ich auch noch sagen wollte, dass bei mir bei der typenfilterung nicht image/jpg sondern image/jpeg funktioniert. Sieht man nämlich wenn man den Array ausgeben lässt auch noch mal.
@@VitalijMik wäre schön wenn es denn stimmen würde, denn ich konnte mit jpg im filter gar keine hochladen, weder jpg, noch jpeg. Mit imge/jpeg kann ich nun aber beide hochladen. Jpeg und jpg. Verstehe es zwar selber nicht ganz, warum es so ist, aber so funktionierts bei mir jetzt. Habe immer mit beiden getestet, jpeg und jpg.😉 Trotzdem wie immer danke für die Antwort👍🏻 bist mit Abstand der beste youtuber wenns ums kommentare beantworten geht und auch so😄
Der mime Type ist nicht NUR von der Endung abhängig sondern von den Header information im Bild. Oder vielleicht nur von den Header information? Auf jeden Fall reicht es nicht Dateiendung zu ändern
5:29 Zeile 7: Müsste es nicht if(!$isPost || !$hasFiles) sein, statt einem &&? Weil so wie es im Video ist würde man ja nur weitergeleitet werden, wenn es keine Postrequest ist UND keine Dateien dabei sind. Aber man soll ja auch weitergeleitet werden, wenn es ein Postrequest aber keine Dateien dabei sind, oder?
Weil mich ja interessiert ob ein POST request verschickt wurde und nicht ob es Post variablen gibt. Wäre es nicht richtiger request method zu überprüfen?
@@VitalijMik durch das isset() wird ja nicht nur geprüft ob die $_POST gesetzt ist, sondern ob diese auch nicht null ist. Und dieser Fall kann ja folglich nur eintreten, wenn wir ein $_POST Request erhalten haben.
@Weblio ich bin mir nicht sicher, ich glaube das $_POST wird nur dann befüllt wenn ich das Formular mit einem Submit button abschicke. Ich meine ich hatte mal Probleme weil ich mit Guzzle ein Request auf mein Script abgechickt habe der als POST request gesendet wurde aber nur Query Parameters gesetzt waren. Seit dem mache ich das so, dass ich mich nicht auf $_POST und $_GET verlasse sondern auf die Request method schaue
Kanntest du finfo?
Richtig tolles Tutorial und das Thema Sicherheit kommt auch nicht zu kurz. Danke dafür! ^^ Übrigens, bei vielen Scripten die man zum Thema Fileupload findet, beinhalten genau diese Fehler, die zu erwähnt hattest. Leider wissen viele das nicht und kopieren sich dann diese unsicheren Scripte auf ihren Server.
Dankeschön, ja ich habe leider selbst diese Fehler früher kopiert und wurde selbst gehackt. Deshalb kenne ich diese Sicherheitsprobleme. Vielleicht muss man in der Entwicklung erstmal auf die Nase Fallen und es muss richtig wehtun damit man sich mit dem Thema auseinandersetzt
@@VitalijMik Hauptsache ist ja, man hat daraus gelernt. Dein Code sieht auch sauber aus, also soweit ich das beurteilen kann. Code ist auch ein stück weit Poesie ^^
Du gibst dir sehr viel Mühe und wirst belohnt. Absolut verdient :)
Dankeschön
Super Video gut erklärt, den Punkt mit der Sicherheitslücke wird selten angesprochen --> weiter so :) - ein Video mit einer Processbar würde mich auch interessieren
Dankeschön, Progressbar könnte man mit der Technik die ich im PHP Chat erwähnt habe, umsetzen,
Hallo Vitalij, happy friday :) ich wollte mal fragen wie viele Websiten du schon erstellt hast und ob manche von denen dir ein Einkommen bescheren :)
Liebe Grüße :)
Viele aber als Aufträge bei der Arbeit und die haben mir eben als Job Einkommen beschert. Sowas wie passives Einkommen Seiten habe ich nicht
@@VitalijMik Interessant :) Schade, dabei hast du so viel Erfahrung im Programmieren :)
@@webnerd1058 ja aber ich mache das nicht wegen Geld :D
@@VitalijMik 🙃
@@webnerd1058 und übrigens wirft YT auch schon eine nette Summe ab ;) dazu hatte ich ein video gemacht
Wo wir gerade beim Upload sind. Wäre es möglich das du mal ein Tutorial machst wo ein Upload mit einer Processbar machen? Also eine Anzeige mit 0% bis 100% hochgeladen. Oder mit einer Anzeige Datei 1 wurde hogleaden; Datei 2 wurde hochgeladen usw.
Kann ich machen, das wird aber ein reines JavaScript tutorial dann
@@VitalijMik OK? Gibt's da nichts in Verbindung mit PHP?
Nein weil PHP Seitig zeigst du ja alles dann an wenn der Upload schon zu 100% durchgelaufen ist. Damit du so eine Anzeige hast, musst du Javascript Seitig deine Datei in Einzelteile zerlegen und einzelen Bytes hochladen
@@VitalijMik
Es gibt doch seit einiger Zeit PECL :: uploadprogress und seit PHP 5.4
session.upload-progress...
www.php.net/manual/de/session.upload-progress.php
In Verbindung mit JavaScript/Ajax ist eine Progressbar möglich. Selbst umgesetzt habe ich es damit noch nicht.
@@ShadowByte666 ja genau, aber du brauchst ja da javascript und du musst die Datei in einzelne Blobs aufteilen. PHP Seitig wird sich da nichts ändern, auf dem Server bleib alles gleich, du hast halt in parallel ein Ajax request der aus der Session ausliest wieviele Bytes hochgeladen sind.
hallo ein guter Video
ich würde gern mit php oder HTML einen bild upload und Bild delete erstellen da ich auf meinem seite einen bilder galerie einfügen möchte .
würde das dann auf die seite includen
wenn ich ein bild eingefügt habe müsste ich auch diesen bild löschen können .
danke
Könntest du auch das Video machen, wo es ein Box gibt, wo man mehrere Bilder auf einmal reinschmeißen kann und sie werden dann hochgeladen
Mach auf jeden fall noch
Vitalij Mik jaaa sowas ähnliches wie UA-cam ? Ich kapier aber nicht das login System Von UA-cam ?? Und wie machen die das mit den Kanehlen ?
Vitalij Mik kannst du bei der Gelegenheit noch eine Funktion einbauen, die Bilder mehrfach in vordefinierten Bildgrössen abspeichern, damit man responsive dann ein anderes Bildformate anzeigen lassen kann? Wäre mega cool 🤙🏻
Nach einer Umleitung per header() sollte immer ein exit; folgen!
Stimmt, mache ich normalerweise auch ;)
Moin moin, ich hab da so ein Problem😅 Und zwar verstehe ich nicht, warum bei mir auch ein leer abgesendetes Form durch folgendes if-statement durchgeht:
$hasFiles = isset($_FILES['datei']) && count($_FILES['datei']) > 0;
if($hasFiles){......}
Mein Array sieht dann auch leer aus aber ich verstehe nicht warum es trotzdem durchgeht. Mein Array, wenn ich es mit print_r ausgeben lasse ohne datei im Form falls es dir irgendwas bringt: Array ( [name] => Array ( [0] => ) [type] => Array ( [0] => ) [tmp_name] => Array ( [0] => ) [error] => Array ( [0] => 4 ) [size] => Array ( [0] => 0 ))
Schon mal danke im voraus😄
Moin, mir ist da wohl ein Fehler unterlaufen, ich habe den Code in der Beschreibung aktualisiert und habe da die Abfrage angepasst. Danke fürs Melden
@@VitalijMik und was ich auch noch sagen wollte, dass bei mir bei der typenfilterung nicht image/jpg sondern image/jpeg funktioniert. Sieht man nämlich wenn man den Array ausgeben lässt auch noch mal.
Das liegt am Bild selbst und deren Endung. Es gibt sowohl JPEG als auch JPG
@@VitalijMik wäre schön wenn es denn stimmen würde, denn ich konnte mit jpg im filter gar keine hochladen, weder jpg, noch jpeg. Mit imge/jpeg kann ich nun aber beide hochladen. Jpeg und jpg. Verstehe es zwar selber nicht ganz, warum es so ist, aber so funktionierts bei mir jetzt. Habe immer mit beiden getestet, jpeg und jpg.😉 Trotzdem wie immer danke für die Antwort👍🏻 bist mit Abstand der beste youtuber wenns ums kommentare beantworten geht und auch so😄
Der mime Type ist nicht NUR von der Endung abhängig sondern von den Header information im Bild. Oder vielleicht nur von den Header information? Auf jeden Fall reicht es nicht Dateiendung zu ändern
Wie macht man Famtmails ? Das geht doch nur ab 1000 Abos bei mir ?
was ist "Famtmails" ?
@@VitalijMik wie geht das ? diese bilder
5:29 Zeile 7: Müsste es nicht
if(!$isPost || !$hasFiles)
sein, statt einem &&?
Weil so wie es im Video ist würde man ja nur weitergeleitet werden, wenn es keine Postrequest ist UND keine Dateien dabei sind. Aber man soll ja auch weitergeleitet werden, wenn es ein Postrequest aber keine Dateien dabei sind, oder?
Probier es aus und berichte mir das Ergebnis ;) Vielleicht hast du ein Fehler entdeckt, vielleicht aber auch nicht
4:54 Zeile 5: Warum so umständlich und nicht auf isset($_POST) prüfen?
Weil mich ja interessiert ob ein POST request verschickt wurde und nicht ob es Post variablen gibt. Wäre es nicht richtiger request method zu überprüfen?
@@VitalijMik durch das isset() wird ja nicht nur geprüft ob die $_POST gesetzt ist, sondern ob diese auch nicht null ist.
Und dieser Fall kann ja folglich nur eintreten, wenn wir ein $_POST Request erhalten haben.
@Weblio ich bin mir nicht sicher, ich glaube das $_POST wird nur dann befüllt wenn ich das Formular mit einem Submit button abschicke. Ich meine ich hatte mal Probleme weil ich mit Guzzle ein Request auf mein Script abgechickt habe der als POST request gesendet wurde aber nur Query Parameters gesetzt waren. Seit dem mache ich das so, dass ich mich nicht auf $_POST und $_GET verlasse sondern auf die Request method schaue