Raketenvereinfacher: Bugfix! Du musst was tun!

Beitrag lesen

problematische Seite

wie könnte man aber nochmal etwas feilen.

Mit „etwas feilen“ ist es bei dem Skript dieses selbst ernannten „cloud, devops, and full stack design & development professional“ nicht getan. Der Typ hat WIRKLICH ALLES falsch gemacht. Das Zeug ist auch kein Punk, keine Kunst - das muss ganz weg.

Ein einfaches (sic: einfaches!) Skript für den Versand einfachster Kontakt-Nachrichten nur an Dich selbst, bei denen auch keine Nicht-ASCII-Zeichen im Subjekt oder den Mailheadern auftauchen dürfen, könnte so aussehen:

<?php
/* 
 * Dieses Skript setzt voraus, dass die PHP-Funktion
 * mail() -> https://www.php.net/manual/de/function.mail.php
 * durch den Hoster ordnungsgemäß konfiguriert wurde.
*/

# *** Konfiguration ***

# Wohin soll die Nachricht gehen?
define( 'Email_TO', 'DeineAdresse@example.com' );

# Bei manchen Hostern ist die Angabe einer Maiadresse des selben Hosters(!) erforderlich:
define( 'Email_FROM', 'formailer@example.com' );

# Das Subjekt bestimmst Du selbst. Keine Umlaute! (sonst wird es komplizierter).
define( 'Email_SUBJECT', 'Nachricht via Kontaktformular' ); 

# Was soll nach dem Mailversand angezeigt werden?
define( 'new_URL', '/danke.html' );

# *** In der Regel nicht zu ändern:

/*
 * https://www.php.net/manual/de/function.mail sagt:
 * Hinweis:
 * Wenn E-Mails nicht ankommen, versuchen Sie bitte, nur das LF-Zeichen (\n) zu verwenden.
 * Einige UNIX-MTAs (mail transfer agents) (ganz besonders » qmail) ersetzen leider LF
 * durch CRLF (\r\n) automatisch (wodurch das CR-Zeichen verdoppelt wird, wenn CRLF
 * verwendet wird).
 * Dies sollte aber nur in Ausnahmefällen geschehen, da es gegen » RFC 2822 verstößt. 
*/
define( 'Smtp_EOL', "\r\n" ); 
define( 'Charset', "UTF-8" ); 

# *** Programm:

if ( 
	$_SERVER['REQUEST_METHOD'] == 'POST' 
	and isset( $_POST['name']    )
	and isset( $_POST['email']   )
	and isset( $_POST['message'] )
) {


	# Kurzer Prozess bei häufigem Angriffsversuch:

	foreach ( ['email', 'name'] as $item ) {
		if ( false !== strpos( "\n", $_POST[ $item ] ) ) {
			http_response_code( 410 );
			echo '<h1>Nice Try!</h1><hr><p>Your message was not sent.</p>';
			exit;
		}
	}    

	# Kurzer Prozess mit Spam:

	/*
	* Spamfilter
	* https://code.fastix.org/Projekte/PHP:Spam-Erkennung%20f%c3%bcr%20Mail-%20und%20Kontaktformulare/
	* Dateien herunterladen und installieren
	* Erforderlich:
	* File: known_spam.txt (kann/muss angepasst/ergänzt werden)
	* File: SpamDetector.php
	*/ 
	require_once ( 'SpamDetector.php' );


	$spamdetector = new SpamDetector();
	foreach ( ['message', 'email', 'name'] as $item ) {
		if ( $spamdetector -> detect( $_POST[ $item ] ) ) {
			http_response_code( 403 );
			echo '<h1>Sorry! Spam detected.</h1><hr><p>Your message was not sent.</p>';
			exit;
		}
	}



	# Ist also vermutlich kein Spam. Dann senden wir das Zeug mal...

	$headers    = [];
	$headers[]  = 'MIME-Version: 1.0';
	$headers[]  = 'Content-Transfer-Encoding: 8bit';
	$headers[] .= 'From: '. Email_From;
	$headers[] .= 'Content-Type: text/plain; charset=' . Charset;

	$headers = implode( Smtp_EOL, $headers );

	$body = $_POST['name'] . '( ' . $_POST['email'] . ' ) schrieb: '  . Smtp_EOL . Smtp_EOL;
	$body .= $_POST['message'];


	# Mail versenden:
	mail( Email_TO, Email_SUBJECT, $body, $headers );

	# Zur Danke-Seite:
	header( 'Location: ' . new_URL );

} else {
	/*
	* Formular für Eingabe von
	* Name (input name='name')
	* Mailadresse für Antwort (input name='email'),
	* Nachricht (textarea name='message')
	* Angabe des target nicht erforderlich.
	*/
	readfile( 'kontakt-formular.html' );
	# oder, wenn PHP erforderlich:
	# require 'kontakt-formular.php';
}
0 128

css Kompatibilität IE / Edge

bugfix
  • css
  1. 0

    css kompatibelität IE / Edge

    Martl
    1. 0
      bugfix
      1. 0
        Rolf B
      2. 1
        Martl
        1. 0
          bugfix
  2. 1

    css kompatibelität IE / Edge

    Rolf B
    1. 0
      Matthias Apsel
    2. 1
      Rolf B
      1. 0
        Matthias Apsel
        1. 0
          Rolf B
      2. 0
        bugfix
        1. 1
          Rolf B
          1. 0
            bugfix
  3. 0

    css kompatibelität IE / Edge

    Rolf B
    1. 0
      bugfix
      1. 1
        Rolf B
        1. 0
          bugfix
    2. 1

      Captcha

      Raketenwissenschaftler
      • barrierefreiheit
      • php
      • software
      1. 0
        bugfix
        1. 0
          Raketenwissenschaftler
          1. 0
            bugfix
            1. 0
              Der Martin
              • humor
              • mathematik
              1. 0
                Gunnar Bittersmann
                • humor
                • menschelei
              2. 0
                bugfix
            2. 0
              Tabellenkalk
            3. 0

              Über: „sehr viel Zeit investieren“

              Raketeninstandhaltungsmechaniker
              • menschelei
          2. 1
            Raketeninstandhaltungsmechaniker
            1. 1
              Der Martin
              1. 1
                Raketeninstandhaltungsmechaniker
                1. 0
                  Matthias Apsel
                  1. 0
                    Raketeninstandhaltungsmechaniker
                2. 0
                  bugfix
                  1. 0
                    Der Martin
                    1. 0
                      bugfix
                      1. 1
                        Der Martin
                        1. 0
                          bugfix
                  2. 1
                    Raketenbürokrat
                    1. 1
                      Raketenbürokrat
                    2. 0
                      bugfix
                      1. 1

                        Captcha, Beispiel und Test mit vollständigem Formular, Wichtige Warnung

                        Raketenbürokrat
                        • php
                        • sicherheit
                        1. 0
                          bugfix
                          1. 1
                            Schon gehackt!
                            1. -1
                              Raketenhacker
                              1. 1
                                Julius
                                1. 0
                                  Gunnar Bittersmann
                                  • literatur
                                  • menschelei
                                  1. 0
                                    Julius
                                    1. 0
                                      Gunnar Bittersmann
                                    2. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        Der Martin
                                        1. 0
                                          Gunnar Bittersmann
                                      2. 1
                                        Gunnar Bittersmann
                          2. 2
                            Julius
                            1. 2
                              Julius
                              1. 3
                                Julius
                                1. 0
                                  Matthias Scharwies
                                  • projekt
                                  1. 0

                                    Seuche

                                    Raktenstatistiker
                                    • projekt
                                    • sicherheit
                                  2. 1
                                    Julius
                                    1. 0
                                      Der Martin
                                2. 0
                                  bugfix
                              2. 1
                                Julius
                                • php
                                • sicherheit
                                • wiki
                                1. 0

                                  SELF-Wiki neue PHP-Tutorials

                                  Matthias Scharwies
                                2. 0
                                  Raketenporzellankistengroßmutter
                                  1. 0

                                    (Erläuterung)

                                    Raketenporzellankistengroßmutter
                                    1. 1
                                      Julius
                                      1. 0
                                        Raketenporzellankistengroßmutter
                                        1. 2
                                          Julius
                                          1. 0
                                            Raketenporzellankistengroßmutter
                                  2. 1
                                    Julius
                                    1. 1
                                      Julius
                                      1. 0
                                        bugfix
                                        1. 2
                                          Julius
                                          • recht
                                          • wiki
                                          1. 0
                                            Gunnar Bittersmann
                                            • datenschutz
                                            • datenschutz
                                            • recht
                                            1. 2
                                              Julius
                                          2. 0
                                            bugfix
                                            1. 2
                                              Julius
                                              1. 0
                                                bugfix
                                      2. 0
                                        Matthias Scharwies
                    3. 0
                      bugfix
                      1. 0
                        Der Martin
                        1. 0
                          bugfix
                          1. 0
                            Der Martin
                          2. 3

                            Bugfix! Du musst was tun!

                            Raktenbugfinder
                            • sicherheit
                            1. 0
                              bugfix
                              1. 2
                                Raketenvereinfacher
                                • php
                                1. 0
                                  Raketenquelltextkorrigierer
                                  1. 0
                                    bugfix
                                    1. 0
                                      Raketencomputerpsychologe
                                      1. 0
                                        bugfix
                                        1. 0
                                          Raketenpsychologe
                                          1. 0
                                            bugfix
                                            1. 0
                                              Raketenfuzzi
                                              1. 0
                                                bugfix
                                                1. 1
                                                  Raktenkonfigurationsseppl
                                                  • programmiertechnik
                                                  1. 0
                                                    bugfix
                                            2. 1
                                              Rolf B
                                              1. 0
                                                bugfix
                                                1. 7
                                                  Rolf B
                                                  1. 0
                                                    Raketenbetrachter
                                                    • meinung
                                                    • programmiertechnik
                                                    1. -1
                                                      bugfix
                                                  2. 1
                                                    bugfix
                                                    1. 2
                                                      Julius
                                                      • html
                                                      • javascript
                                                      • php
                                                      1. 0
                                                        bugfix
                          3. 2
                            Julius
                            1. 0
                              bugfix
                              1. 0
                                Der Martin
                              2. 0
                                Raketenortungssystem
                                1. 0
                                  bugfix
                                  1. 0
                                    Tabellenkalk
                                    1. 0
                                      bugfix
                                      1. 0
                                        Tabellenkalk
                                        1. 0
                                          bugfix
                                          1. 0
                                            Gunnar Bittersmann
                                  2. 1

                                    Desinfektionsmittel

                                    Raketenhellseher
                              3. 0
                                Matthias Apsel
                            2. 1
                              Matthias Apsel
            2. 0

              Break this Captcha

              Raketeninstandhaltungsmechaniker
  4. 1

    css kompatibelität IE / Edge

    Gunnar Bittersmann
    • design
    • formulare
    • ux
    1. 0
      bugfix
      1. 0
        Gunnar Bittersmann
        1. 0
          bugfix
          1. 0
            Gunnar Bittersmann
          2. 2
            Gunnar Bittersmann
            1. 0
              bugfix
            2. 0
              bugfix
      2. 1
        Matthias Apsel
        1. 0
          Der Martin
        2. 0
          bugfix