Formular versenden

  • Hallo,


    ich habe auf meiner Seite ein Anmeldeformular definiert, das mit einem fertigen programmierten php Script versendet wird. Seit einiger Zeit funktioniert der Versand nicht mehr (es ist irgendein Fehler im php script, den ich jedoch nicht eruieren kann. Nunmehr suche im Netz ein fertiges programmiertes php Script, das ich verwenden kann. Der Versand von zwei Dateien per Upload soll auch unterstützt werden. Ich finde jedoch nur fertige Lösungen, die auch ein Formular enthalten, das ich jedoch nicht verwenden kann, weil mein Formular ja schon existiert.


    https://www.php-einfach.de/exp…eispiele/kontaktformular/


    Weiters habe ich dieses Script gefunden, das wunderbar funktioniert, jedoch keinen Dateiupload unterstützt. Kann mir hier jemand von Euch weiterhelfen, wie ich entweder in diesem Script die Upload Funktion ergänzen kann, oder kennt jemand ein frei verfügbares Script im Netz, das meine Wünsche erfüllt und auch frei an meine Bedürfnisse angepasst werden kann?


    Danke für Eure Hilfe und Prosit 2020.

  • Das wollte ich mir ja gerade ersparen, dass ich mein html und css ändern muss. Deshalb möchte ich ja mein Formular behalten, damit ich nichts ändern muss.


    Derzeit habe ich folgendes Formular im Einsatz: formular.txt


    Das ist die dazugehörende php Datei, die nur den Versand des Formulars übernimmt: script.txt


    Wenn ich dann das Formular versende, erscheint folgende Fehlermeldung: Fatal error: Uncaught Error: Call to undefined function split() in /homepages/44/d291036264/htdocs/html/Anwendungen/myFormMail.php:66 Stack trace: #0 {main} thrown in /homepages/44/d291036264/htdocs/html/Anwendungen/myFormMail.php on line 66


    Ich weiß aber nicht, was hier falsch ist und wie ich den Fehler beheben kann. Vielleicht hat ja wer eine Idee. Oder reicht es wenn ich anstelle meines Scripts laut Beilage die Datei (phpMailer.php) aus dem PHP Mailer laut dem Beispiel von Basti einbinde?


    Danke vorab.

  • Das ist ja meine Frage: Wenn man das ersetzt, muss man dann die ganze Funktion umschreiben, oder nur das Schlüsselwort?


    Anbei die Datei mit der betreffenden Funktion in der die fehlerhafte Anweisung enthalten ist. (Zeile 12) funktion.txt

    Wie muss man diese umschreiben?. Vielleicht kann ja wer helfen.


    Danke.

  • Ich weiß nicht, was an meiner Aussage nicht zu verstehen ist: Ich kenne mich nicht aus mit PHP! Die obige Funktion habe ich mehrmals durchgelesen, aber wenn man nicht weiß, was zu tun ist, hilft hundertmal lesen auch nicht.


    Daher wollte ich wissen, ob man bei der fehlerhaften Zeile: $extensions = split(',',$upload_extensions);


    das "split" durch "preg_split" oder durch "explode" ersetzen muss, oder ob hier mehr zu korrigieren ist. Dann stehe ich nämlich an und weiß nicht weiter.


    Daher meine Frage.

  • Ich kenne mich nicht aus mit PHP!

    Dann ändere das!

    Zitat

    Die obige Funktion habe ich mehrmals durchgelesen

    Das glaube ich dir nicht!

    Zitat

    hilft hundertmal lesen auch nicht.

    Traurig genug!

    Zitat

    Daher wollte ich wissen, ob man bei der fehlerhaften Zeile: $extensions = split(',',$upload_extensions);


    das "split" durch "preg_split" oder durch "explode" ersetzen muss

    Das könntest du durch einfaches Ausprobieren selber herausfinden, aber du lässt dir lieber immer alles vorkauen oder wartest auf eine fertige Lösung. Du hast den Sinn von Foren immer noch nicht begriffen, es gibt Hilfe zu Selbsthilfe, mehr aber auch nicht!


    Und wenn du die erhaltenen Antworten mal lesen und darüber nachdenken würdest, wüsstest du, was du zu machen hast!

    Zitat

    Ich würde eher explode nehmen oder die Extensions direkt als Array definieren.


    Ich hatte auch das Problem das split nicht mehr funktionierte, neue PHP-Version. Ich habe es erfolgreich durch explode ersetzt.

    Was willst du noch?! Komm' endlich mal aus deiner Bequemlichkeit raus und bemühe dich mal selber!!!


    Mal ganz davon abgesehen, dass du sogar zu bequem bist, deine Frage ins richtige Board zu setzen, denn was hat das mit HTML oder CSS zu tun!


    Also jammere hier nicht rum, setze dich mit dem Problem ausnahmsweise mal richtig auseinander!

  • Auf diesen Nonsens, der in der letzten Antwortt geschrieben wurde, sollte man eigentlich gar nicht eingehen. Ich möchte daher nur kurz anmerken, dass es manchen helfen würde, wenn sie sinnerfassend lesen könnten, aber das schaffen diese Personen halt nicht. Eines schon noch zum Abschluss dieser unnötigen Diskussion: Wenn man den Sinn von Foren selber nicht versteht, dann sollte man darüber keine Aussagen treffen!!!!!!


    Ich habe jetzt mal die split Anweisung durch preg_split ersetzt und das funktioniert auch. Das wäre also eine hilfreiche Antwort gewesen!!!


    Jetzt habe ich noch das Problem das ich folgendes im Script definiert habe:

    $subject = 'Anmeldung ';

    $introtext = 'Sie haben folgende Anmeldung erhalten:';

    $redirect = 'danke.html';

    $max_filesize = '5000';

    $upload_extensions = 'jpg, gif, png, pdf, docx, doc, txt';

    $max_files = '2';


    Wenn ich jetzt jedoch eine .pdf Datei hochlade, dann erhalte ich die Fehlermeldung, dass es sich um eine unerlaubte Dateiendung handelt. Das verstehe ich jedoch nicht. Wo liegt hier der Fehler?


    Danke für die Hilfe an alle, die helfen wollen.

  • Zitat

    Das wäre also eine hilfreiche Antwort gewesen!!!

    Was stimmt mit dir nicht?! Du hast 2x einen Hinweis auf explode bekommen!!! Was willst du noch?!?!?!?!?!??!?


    Richtig debuggen


    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
  • Ich verstehe sehr gut, was du willst. Nämlich mit möglichst wenig Eigeninitiative deine Scripte fertig bekommen. Zu dumm, dass das nicht immer klappt, denn ich bin nicht basti1012, der fertige Lösungen liefert. Du hast einige Hinweise bekommen, jetzt bist du am Zug. Und wenn du es, wie zu vermuten ist, nicht alleine hinbekommst, dann zeige uns das aktuelle Script inkl. der Debug-Ausgaben, die du einzufügen hast, siehe dazu "Richtig debuggen".

  • Ich bin nach wie vor fest überzeugt, dass Du keine Ahnung hast, was ich will, also bitte verschone mich mit Deinen sinnbefreiten Kommentaren.


    Gott sei Dank gibt es so Mitglieder wie Basti, die verstehen, worum es in einem Forum geht. Du hast leider davon keine Ahnung. Also bitte lass mich mit Deinem Schrott in Ruhe. Du bist nämlich keine Hilfe, du nervst nur, also bitte mach das wo anders und nicht in meinen Themen.


    Aber man sieht bei Durchsicht Deiner ganzen Beiträge, dass Du jedesmal nur Kritik und Schrott absonderst - eine Hilfe warst Du noch für keinen. Ich würde mich freuen, nie wieder von Dir zu lesen.

  • Hier nochmals das Script, das keine Fehler zeigt. script (1).txt


    Auch der Versand des Formulars funktioniert .


    In Zeile 26 werden die erlaubten Dateiformate definiert. Im versendeten Email wird jedoch angeführt, dass keine Datei mitgeschickt wurde, da die Datei eine unerlaubte Endung hatte (obwohl ich ein pdf verschickt habe)