Ich habe das Ganze jetzt folgendermaßen gelöst: Eine if-Bedingung überprüft als erstes ob der Dateityp stimmt und die Datei im Verzeichnis noch nicht vorhanden ist. Wenn das stimmt wird versucht die Datei auf den Server zuladen und einen Datenbankeintrag zu erstellen. Klappt eines der beiden nicht wird jeweils andere rückgängig gemacht
Beiträge von mc_sr
-
-
Am besten kann man dazu Hilfestellung geben, wenn Du zeigst, wie Dein Code für den Upload und das Schreiben in die Datenbank aktuell aussieht.
Das ist noch recht Basic, aber momentan geht es mehr um die Funktion
PHP
Alles anzeigen<?php if (isset($_POST['uploadFileSubmit'])) { //require config require 'config.php'; //file data $uploadFile = $_FILES['uploadFile']; $uploadFileName = $_FILES['uploadFile']['name']; $uploadFileType = $_FILES['uploadFile']['type']; $uploadFileTmpLocation = $_FILES['uploadFile']['tmp_name']; //get category $uploadCategory = $_POST['uploadCategory']; //get the file-extension and lower all letters down $uploadFileExt = explode('.', $uploadFileName); $fileActualExt = strtolower(end($uploadFileExt)); //allowed file extensions $allowedExt = array('jpg', 'jpeg', 'png', 'pdf'); //create S3 Key $s3Key = $uploadCategory.'/'.$uploadFileName; if (in_array($fileActualExt, $allowedExt)) { //S3 Upload $result = $s3->putObject([ 'Bucket' => BUCKET, 'Key' => $s3Key, 'SourceFile' => $uploadFileTmpLocation ]); //Create Database Entry require 'db-config.php'; $sql = "INSERT INTO files (fileName, fileS3Key, category, uploadedBy) VALUES ('$uploadFileName', '$s3Key', (SELECT categoryId FROM categories WHERE s3Key = '$uploadCategory'), 'Marco Feicht')"; if ($conn->query($sql) === TRUE) { echo "New record created successfully<br>"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } //Success Message echo "Die Datei wurde erfolgreich hochgeladen!<br>"; } else { echo "Dieser Datei-Typ ist nicht erlaubt!"; } } ?>
-
Hey,
Du kannst überprüfen ob der Dateiupload erfolgreich war. Wenn nein dann gibts du der Variable erfolgreich den Wert False.
Das selbe machst du dann beim Datenbankeintrag. Mit anderer Variable. Oder beides in einem Array.
Wenn du dies hast, dann überprüfst du mittels einer IF-Abfrage ob diese beiden erfolgreich waren. Wenn ja gibst du dem User die Meldung Upload erfolgreich aus.
Wenn nicht dann schaust du welcher Prozess nicht funktionierte und löschst entweder den Datensatz oder die Datei und gibst die Meldung aus Upload nicht erfolgreich. Bitte versuchen Sie es erneut!
Beste Grüße,
Stef
Das klingt logisch. Werde ich gleich mal ausprobieren und dir dann eine Rückmeldung geben. Danke dir!
-
Hallo zusammen,
ich habe folgende Ausgangssituation: Ein Script, bei dem zum einen eine Datei hochgeladen und zum anderen ein Eintrag in eine Datenbank geschrieben wird (beides mit PHP). Die beiden Aktion funktionieren auch schon sehr gut. Nun ist es aber so, dass es auch mal vorkommen kann, aus welchen Gründen auch immer, dass eine der beiden fehlschlägt.
Da ich noch Anfänger in PHP bin, ist hier mein Latein leider zu Ende und ich brauche Eure Hilfe.
Ich möchte eine Bedienung oder ähnliches einbauen, die überprüft, ob beide Aktionen durchlaufen und wenn eine fehlschlägt, die andere auch wieder rückgängig macht. Geht sowas?
Vielen Dank schon einmal im Voraus für Eure Hilfe!
-
Ist das möglicher Weise Safari auf Windows?
Nein, Safari auf Mac
-
Ich hab mir das mit FormMailer und Swift angesehen, aber irgendwie kommt mir das komplizierter vor. Das Script oben ist nur für eine kurze Benachrichtigung gedacht und ich denk da tut es mail() auch
Danke dir!
-
Hallo zusammen,
ich habe folgendes Formular:
HTML
Alles anzeigen<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <form action="e-mail-senden.php" method="post"> <label for="kdn">*Kundennummer</label> <input type="text" maxlength="5" name="kdn" id="kdn" required> <br> <label for="kundeMail">*Kunden E-Mail</label> <input type="email" name="kundeMail" id="kundeMail" required> <br> <label for="name">Name</label> <input type="text" name="name" id="name"> <br> <label for="id">*ID</label> <input type="text" name="id" id="id" required> <br> <label for="bemerkung">Bemerkung</label> <input type="text" name="bemerkung" id="bemerkung"> <br> <button type="submit" class="btn btn-primary">Eintragen</button> </form> </body> </html>
und folgenden PHP-Code:
PHP
Alles anzeigen<?php //Get the stuff $kundeMail = $_POST["kundenMail"]; $kdn = $_POST['kundenummer']; $name = $_POST['name']; $id = $_POST['id']; $bemerkung = $_POST['bemerkung']; if($kdn != "" and $kundeMail != "" and $id != "") { // mail header $empfaenger = $kundeMail; $betreff = "Neues Backup verfügbar"; //generate mail content $text = "<h1>Neues Backup verfügbar</h1>"; $text .= "<p>Sehr geehrte Damen und Herren,<br><br>"; $text .= "im Kundenportal wurde für Sie ein neues Backup Ihrer Webseite und der zugehörigen Datenbank hinterlegt.</p>"; $text .= "<br>"; $text .= "<h2>Details zum Backup</h2>"; $text .= "<table>"; $text .= "<tr>"; $text .= "<td><b>Datum:</b></td>"; $text .= ""; $text .= "</tr>"; $text .= "<tr>"; $text .= "<td><b>Name:</b></td>"; $text .= $name; $text .= "</tr>"; $text .= "<tr>"; $text .= "<td><b>ID:</b></td>"; $text .= $id; $text .= "</tr>"; $text .= "<tr>"; $text .= "<td><b>Bemerkung:</b></td>"; $text .= $bemerkung; $text .= "</tr>"; $text .= "</table>"; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // More headers $headers .= 'From: <noreply@meine-domain.de>' . "\r\n"; mail($empfaenger,$betreff,$text,$headers); echo "Mail gesendet!"; } else { echo "Mail: Es ist ein Fehler aufgetreten!"; } ?>
Ich suche jetzt schon seit mehreren Stunden nach dem Fehler, aber finde Ihn einfach nicht. Immer wenn ich das HTML-Formular absenden, sollte eigentlich das PHP-Script aufgerufen werden, was auch soweit funktioniert. Das Problem ist aber, dass die Mail nicht gesendet wird und ich weiß einfach nicht warum.
-
EDIT: Gerade noch was dazu gefunden, was die Navigation angeht, evtl. hilft das weiter:
https://developer.mozilla.org/en-US/docs/Web…ory_API/Example
Perfekt, sowas hab ich gesucht. Danke für Eure Hilfe!
-
Ich hab das, was ihr mir vorschlägt, mal ein bisschen gegoogelt und noch eine Seite gefunden, die so funktioniert: https://cuberto.com/
Ich vermute, dass zusätzlich bei Bayern3 die URL mit geändert wird, über AJAX oder so, und so der zurück Button auch wieder funktioniert. Das ist glaub ich der Grund warum der Player auch dauerhaft durch läuft.
-
Hallo zusammen,
ich stoße im Internet in letzter Zeit immer mehr auf Seiten, bei denen man auf eine Unterseite "springen" kann, ohne, dass die ganze Webseite neugeladen wird, wie es normalerweise der Fall ist.
Hier ein Beispiel, was ich meine: http://www.bayern3.de
Dort sieht man, dass wenn man auf eine andere Seite geht, sich die Seite ändert und die URL ändert, aber nicht die ganze Seite neu lädt. Nun meine Frage: Wie setzt man so etwas um?
Vielen Dank schon mal für Eure Hilfe im Voraus und viele Grüße!
-
meinst du so ungefähr
Perfekt! Danke, so was habe ich gesucht
-
Hallo zusammen,
ich möchte dass ein Element meiner Seite so lange mitscrollt, bis es den oberen Browserrand berührt und dort fixiert "hängen bleibt". Ist das möglich?
Viele Dank schon mal für eure Hilfe
-
In Deinem Content-Div <div class=".col-md-12">...</div> angeben(je nach Version). Mein Hinweis Ist etwas ungenau, da ich kein Bootstrp nutze. Aber so sollte es funktionieren.
An das mit den Columns habe ich bereits gedacht, aber das Problem dabei ist, dass die beiden Bereich dann eine feste Breite hätten und sich nicht anpassen könnten, je nach dem, ob die Sidebar vorhanden ist oder nicht.
-
Hab's auch schon mit googeln versucht, aber anscheinend nach dem falschen gesucht...
Auf jeden Fall funktioniert es jetzt, danke !
-
-
Hallo zusammen,
ist es möglich, mit JS ein Script zu erstellen, dass überprüft, ob im HTML-Tag "X" ein Inhalt vorhanden ist? Sollte kein Inhalt vorhanden sein, soll für den HTML-Tag "X" das Style-Attribut "display: none" gesetzt werden.
Ist so etwas möglich?
-
Hallo zusammen,
ich bin dabei eine Webseite (mit Bootstrap) zu erstellen bei der u.a. eine Sidebar vorhanden sein soll. Das ganze soll wie auf folgendem Bild aufgebaut sein:
html-seminar.de/woltlab/attachment/1481/
Sollte der Aside-Tag für die Sidebar nicht vorhanden sein (und damit auch nicht die Sidebar), soll der Content-Bereich die volle Breite einnehmen.
html-seminar.de/woltlab/attachment/1482/
Wie kann ich sowas am einfachsten umsetzen?
Vielen Dank schon mal für eure Hilfe!
-
Meinem Wissen nach kann doch, wenn ich die PDFs im Dateisystem speichere, jeder darauf zugreifen, auch die die es eigentlich nicht sehen sollten. Deshalb die Idee mit der Datenbank. Würde es auch eine Möglichkeit geben die Dateien im Dateisystem abzuspeichern, so dass jeder nur das sieht, was er auch sehen soll (außer htaccess)?
Ja, einen Upload zum Server benötige ich auch.
-
Ähmm, so ganz verstehe ich den Zusammenhang zwischen dem Formular und der PDF-Datei nicht. Und wieso willst du eine PDF-Datei in einer DB speichern?
Ich möchte die monatlichen Rechnungen meiner Kunden (PDF-Datei) in einer Datenbank speichern, sodass nach der Anmeldung im Kundenportal jedem Benutzer seine jeweiligen Rechnungen als PDF zur Verfügung stehen.
Damit ich mich nicht jedesmal in PHPmyAdmin anmelden muss, möchte die Rechnungen (sind PDF-Datein) mit einem HTML-Formular in die Datenbank "laden".
-
Hallo zusammen,
ich habe bereits bei Google gesucht, aber keine funktionierende Lösung für folgendes gefunden: Wie kann ich mit einem simplen HTML-Formular eine PDF-Datei in eine MySQL-Datenbank laden und von dort auch wieder auslesen?
Ich kenne mich nicht wirklich gut mit PHP aus, daher auch meine Frage hier im Forum.