Danke erstmal für die Antwort:)
html-datei:
HTML-Code:
...
<form name="Seite" method="POST" action="senden.php" enctype="multipart/form-data">
<div class="flex-item">
<label >Sonstiges(*.jpg/*.png/*.gif))</label>
<input type="file" name="sonstiges" id="sonstiges" size="50" accept=".jpg, .png, .gif" >
</div>
<input type="submit" value="Abschicken" name="btn[hochladen]">
</form>
...
senden.php:
PHP-Code:
if(isset($_POST['btn']['hochladen'])){
if ($_SERVER["REQUEST_METHOD"] == "POST" && !empty($_FILES["sonstiges"])) {
$myFile = $_FILES["sonstiges"];
if ($myFile["error"] !== UPLOAD_ERR_OK) {
echo "<p>An error occurred.</p>";
exit;
}
// verify the file type
$fileType = exif_imagetype($_FILES["sonstiges"]["tmp_name"]);
$allowed = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG);
if (!in_array($fileType, $allowed)) {
echo "<p>File type is not permitted.</p>";
exit;
}
//Überprüfung der Dateigröße
$max_size = 500*1024; //500 KB
if($_FILES['sonstiges']['size'] > $max_size) {
die("Bitte keine Dateien größer 500kb hochladen");
}
// ensure a safe filename
$name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);
// don't overwrite an existing file
$i = 0;
$parts = pathinfo($name);
while (file_exists(UPLOAD_DIR . $name)) {
$i++;
$name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
}
// preserve file from temporary directory
$success = move_uploaded_file($myFile["tmp_name"], UPLOAD_DIR . $name);
if (!$success) {
echo "<p>Unable to save file.</p>";
exit;
}
// set proper permissions on the new file
chmod(UPLOAD_DIR . $name, 0644);
echo "<p>Uploaded file saved as " . $name . ".</p>";
}
}
...
Und wenn ich jetzt auf den Button klicke werde ich auf eine neue Browserseite geleitet, wo meine PHP Fehlermeldungen stehen. Ich möchte jedoch die HTML-Seite nicht verlassen, sondern dort meine Errors lesen.
Also praktisch die Fehler unter dem input-tag angezeigt bekommen.
ich hoffe es ist verständlicher womit ich kämpfe