Kontaktformular will nicht

  • Hallo habe gerade mein Kontaktformular in betrieb genommen und muss feststellen, dass es hoffnungslos veraltet ist (php 5,2)

    Oder ich aus Ahnungslosigkeit falsch konfiguriert habe

    Vielleicht hat jemand ein passendes PHP, das ich einfach über mein HTML und CSS legen kann.

    Das Layout gefällt mir sehr gut nur die Technik macht Probleme.


    Achja anzusehen unter

    Hier

  • nur die Technik macht Probleme

    Das heißt genau?


    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.

















  • Vielleicht hat jemand ein passendes PHP, das ich einfach über mein HTML und CSS legen kann.

    Damit ist es leider nicht getan: das Formular ist unbedienbar da die einzelnen Felder keine Beschriftung haben - und nein, placeholder-Attribute sind keine Beschriftung!

    PHP
    $headers = 'From: ' . $_POST["name"] . '<' . $_POST["email"] . '>' . "\r\n" .
        'Reply-To: ' . $_POST["email"] . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    Keine gute Idee: der Besucher ist idR niemand der über deinen Server Mails verschicken darf - du erhöhst damit das Risiko dass solche Mails als Spam eingestuft werden und u.U. garnicht erst ankommen.

    Zitat
    Code
     mail( "kontakt@ristorante-sicilia-reinheim.de", $_POST['subject'], $_POST['message'], $headers );

    Vergiss mail(), verwende eine Mailerklasse (z.B. PHPMailer) um Mails zu verschicken.

    Zitat

    Das Layout gefällt mir sehr gut nur die Technik macht Probleme.

    Definiere "macht Probleme".

  • Hab vielleicht vergessen deutlich zu machen, dass ich leider was php angeht null Ahnung habe und sowas normal per copy&paste aus dem netz nehme.


    @scatello erstmal danke für die ausführliche Vorgehensweise. Die Wörter kann ich wohl lesen aber verstehen? Da fehlen mir die Grundlagen

    tk1234 bei dir trift das selbe zu.


    An beide:

    Ich füll das Formular aus sende es ab. Ein Rädchen dreht sich. Achließend wird zum Seitenanfang gesprungen. Und das Formular ist leer.

    Doch mail kommt nicht an.


    Das ist das Problem

  • Zitat

    dass ich leider was php angeht null Ahnung habe

    Unter dieser Randbedingung ist es wenig empfehlenswert, einfach eine Fundsache aus dem Netz zu nehmen. Besser vorher fragen, was empfehlenswert ist. Die Antwort hast Du ja schon bekommen: Setze PHP-Mailer ein und dann sehen wir weiter.

  • Das internet ist voll von Beiträgen wo der phpMailer empfohlen wird und die armen Teufel am verzweifeln sind. Sie haben wie ich das Teil herunter geladen und finden ein Verzeichnis mit einigen Dateien und ein Seitenlanges readme in englisch welches sich wohl an Fachmänner richtet. Dann versucht man eine deutsche Anleitung zu finden. Naja ihr werdet wissen wie sowas ausgeht..

    Was mir aufgefallen ist und ich erkennen konnte Das teil bietet unendliche Möglichkeiten und alles lässt sich wahrscheinlich konfigurieren.

    Für mich ist das wie wenn ich heute von Windows komplett auf Linux wechseln müsste. Das soll nur eine Metapher sein.

    Ich brauch nur ein Button der eine Mail versendet und mir erfolg meldet.

  • Ein Kontaktformular ist nicht so ganz ohne und mit ein wenig Copy&Paste oder Dateien einspielen ist es leider nicht getan. Auf der anderen Seite gibt es bei den Beispielen (examples) schon ein Kontaktformular (contactform.phps), was Du als Basis nehmen kannst. Diese Version setzt voraus, dass dein Provider einen lokalen Webserver zur Verfügung stellt. Prüfe, ob das bei deinem der Fall ist.

  • So hab mal ein PHPMailer beispiel gefunden mit dem ich arbeiten kann. Allerdings brauch ich bei php etwas Hilfe was die konfiguration angeht.

    Zeilen 15 und 19 $fromName = 'Demo contact form'; Was muss da rein?

    Zeilen 26 damit ist wohl der smtp-server gemeint?

    Zeile 90 Muss da was geändert werden?

    Zeilen 93 bis 105 muss ich wohl die Verschlüsselung angeben



    Achja Zeile 7 Muss ich deshalb den ganzen Ordner zusätzlich auch noch hochladen?


    Code
    michael@bookworm:~/Homepages/Sicilia/Sicilia-Rist/PHPMailer-master$ ls
    class.phpmaileroauthgoogle.php  class.smtp.php  extras               LICENSE
    class.phpmaileroauth.php        composer.json   get_oauth_token.php  PHPMailerAutoload.php
    class.phpmailer.php             composer.lock   issue_template.md    VERSION
    class.pop3.php                  examples        language
    michael@bookworm:~/Homepages/Sicilia/Sicilia-Rist/PHPMailer-master$ 
  • Jetzt haben wir wieder die Situation, dass es eine Fundsache ist, wo wir nicht genau wissen, wie aktuell und zuverlässig das ist. Wohler wäre mir wenn Du das originale Beispiel von Github genommen hättest.

    Zitat

    Zeilen 15 und 19 $fromName = 'Demo contact form'; Was muss da rein?

    Weil eine Emailadresse manchmal etwa kryptisch sein kann, gibt es zusätzlich einen gut lesbaren Namen. Sieht in meinem Emailclient so aus:

    email-name.png


    Du kannst z. B. "Ristorante Sicilia" dort eintragen.


    Zitat


    Zeilen 26 damit ist wohl der smtp-server gemeint?

    Ja.


    Zitat


    Zeile 90 Muss da was geändert werden?

    Kann ich nicht beantworten. In dem originalen Beispiel auf Github wird der Hostname direkt eingetragen:

    PHPMailer/examples/smtp.phps at master · PHPMailer/PHPMailer
    The classic email sending library for PHP. Contribute to PHPMailer/PHPMailer development by creating an account on GitHub.
    github.com

    Code
    $mail->Host = 'mail.example.com';


    Zitat

    Zeilen 93 bis 105 muss ich wohl die Verschlüsselung angeben

    Ja, Du musst die Daten angeben, die dein Provider verlangt.


    Zitat


    Zeile 7 Muss ich deshalb den ganzen Ordner zusätzlich auch noch hochladen?

    Hier bin ich mir nicht vollständig sicher. Selber habe ich die Dateien aus dem Verzeichnis "src" hoch geladen und eingebunden:

    Code
    include 'phpmailer/Exception.php';
    include 'phpmailer/DSNConfigurator.php';
    include 'phpmailer/OAuthTokenProvider.php';
    include 'phpmailer/OAuth.php';
    include 'phpmailer/POP3.php';
    include 'phpmailer/SMTP.php';
    include 'phpmailer/PHPMailer.php';
  • HAb nicht verstanden was du mir mit dem Beispiel sagen willst. Aber das liegt bestimmt am mir

    Dieser Fehler kommt bim absenden


    masterphp.jpeg


    Man beachte die Adresszeile


    So sieht das php jetzt aus

  • Code
    [Wed Oct 25 19:44:34.926488 2023] [fcgid:warn] [pid 3859936:tid 139954424747776] [client 87.123.240.137:39150] mod_fcgid: stderr: PHP Warning:  Unexpected character in input:  '\\' (ASCII=92) state=1 in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 51, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 19:44:34.926783 2023] [fcgid:warn] [pid 3859936:tid 139954424747776] [client 87.123.240.137:39150] mod_fcgid: stderr: PHP Parse error:  syntax error, unexpected '@' in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 104, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 19:45:11.169017 2023] [fcgid:warn] [pid 3867310:tid 139954491889408] [client 87.123.240.137:33474] mod_fcgid: stderr: PHP Warning:  Unexpected character in input:  '\\' (ASCII=92) state=1 in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 51, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 19:45:11.169107 2023] [fcgid:warn] [pid 3867310:tid 139954491889408] [client 87.123.240.137:33474] mod_fcgid: stderr: PHP Parse error:  syntax error, unexpected '@' in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 104, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 19:49:35.353669 2023] [fcgid:warn] [pid 3867310:tid 139954214930176] [client 87.123.240.137:8956] mod_fcgid: stderr: PHP Warning:  Unexpected character in input:  '\\' (ASCII=92) state=1 in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 52, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 19:49:35.353742 2023] [fcgid:warn] [pid 3867310:tid 139954214930176] [client 87.123.240.137:8956] mod_fcgid: stderr: PHP Parse error:  syntax error, unexpected '@' in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 105, referer: https://ristorante-sicilia-reinheim.de/

    Das wird vom Hoster vorgegeben

  • liegt es vielleich hier drann?

    CSS
    // an email address that will be in the From field of the email.
    $fromEmail = 'kontakt@ristorante-sicilia-reinheim.de';
    $fromName = 'ristorante';
    
    // an email address that will receive the email with the output of the form
    $sendToEmail = 'kontakt@ristorante-sicilia-reinheim.de';
    $sendToName = 'ristorante';
  • Ich denke eher nicht.


    Bei dem Code in #12 müssen auf jeden Fall Server und Passwort in Hochkommas, da es Strings sind:

    Code
    //Username to use for SMTP authentication - use full email address for gmail
     $mail->Username = 'kontakt@ristorant-sicilia-reinheim.de';
      //Password to use for SMTP authentication
     $mail->Password = 'xgeheimx';


    Ist das PHP noch gleich dem in #12?

  • Code
    [Wed Oct 25 19:44:34.926488 2023] [fcgid:warn] [pid 3859936:tid 139954424747776] [client […]] mod_fcgid: stderr: PHP Warning:  Unexpected character in input:  '\\' (ASCII=92) state=1 in […]/php/contact-3.php on line 51, referer: […]

    Gemäß der allwissenden Müllhalde (aka Google) bzw. Stackoverflow liegt das Problem an der verwendeten PHP-Version: PHP 5.2 kennt noch keine Namespaces, stell auf auf eine aktuelle PHP-Version (>= 8.1) um.

  • Habe mit php 8 und 8.2 probiert


    Code
    [Wed Oct 25 20:54:15.108290 2023] [fcgid:warn] [pid 3991022:tid 139954365998848] [client 87.123.240.137:21696] mod_fcgid: stderr: PHP Warning:  Unexpected character in input:  '\\' (ASCII=92) state=1 in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 52, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 20:54:15.108380 2023] [fcgid:warn] [pid 3991022:tid 139954365998848] [client 87.123.240.137:21696] mod_fcgid: stderr: PHP Parse error:  syntax error, unexpected '@' in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 105, referer: https://ristorante-sicilia-reinheim.de/
    [Wed Oct 25 20:57:55.368092 2023] [proxy_fcgi:error] [pid 3999482:tid 139954399053568] [client 87.123.240.137:50632] AH01071: Got error 'PHP message: PHP Parse error:  syntax error, unexpected token "@" in /var/www/vhosts/n984k5q6.web56.alfahosting-server.de/ristorante-sicilia-reinheim.de/php/contact-3.php on line 105', referer: https://ristorante-sicilia-reinheim.de/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!