Ankündigung

Einklappen
Keine Ankündigung bisher.

Email Formular auf Website - funktioniert leider nicht mehr :(

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Email Formular auf Website - funktioniert leider nicht mehr :(

    Hallo,
    habe eigentlich mit PHP nix am Hut.
    Habe auf meiner Webseite ein Kontaktformular und habe nun festgestellt, dass dieses leider nicht mehr geht.

    Bei einem check auf http://sandbox.onlinephpfunctions.com/ erhalte ich die Fehlermeldung: session_start() has been disabled for security reasons in ...
    Ich vermute, das ist die Ursache, weshalb das Formular nicht mehr funktioniert. Die Firma, die die Seite gemacht hat, kann ich leider nicht mehr fragen.

    Würde mich freuen, wenn mir jemand mitteilen kann, was falsch ist bzw wie es richtig wäre, damit das Kontaktformular wieder funktioniert

    PHP-Code:

    <?php 

    $your_email 
    ='email@domain.at';// <<=== update to your email address


    session_start();
    $errors '';
    $name '';
    $visitor_email '';
    $webs '';
    $user_message '';

    if(isset(
    $_POST['submit']))
    {

        
    $name $_POST['name'];
        
    $visitor_email $_POST['email'];
        
    $user_message $_POST['message'];
        
    $webs $_POST['website'];
        
    ///------------Do Validations-------------
        
    if(empty($name)||empty($visitor_email))
        {
            
    $errors .= "\n Name and Email are required fields. ";    
        }
        if(
    IsInjected($visitor_email))
        {
            
    $errors .= "\n Bad email value!";
        }
        if(empty(
    $_SESSION['6_letters_code'] ) ||
          
    strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
        {
        
    //Note: the captcha code is compared case insensitively.
        //if you want case sensitive match, update the check above to
        // strcmp()
            
    $errors .= "\n The captcha code does not match!";
        }

        if(empty(
    $errors))
        {
            
    //send the email
            
    $to $your_email;
            
    $subject="New form submission";
            
    $from $your_email;
            
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';

            
    $body "Contact Us page user  $name submitted the contact form:\n".
            
    "Name: $name\n".
            
    "Email: $visitor_email \n".
            
    "Website: $webs \n".    
            
    "Message: \n ".
            
    "$user_message\n";


            
    $headers "From: $from \r\n";
            
    $headers .= "Reply-To: $visitor_email \r\n";

            
    mail($to$subject$body,$headers);

            
    header('Location: thank-you.php');
        }
    }

    if(isset(
    $_POST['snews']))
    {


        
    $s_email $_POST['s_email'];


        if(
    IsInjected($s_email))
        {
            
    $errors .= "\n Bad email value!";
        }

        if(empty(
    $errors))
        {
            
    //send the email
            
    $to $your_email;
            
    $subject="New Subscription Received";
            
    $from $your_email;
            
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';

            
    $body "Contact Us page user  $s_email subscribe to our newsletter.\n".

            
    "Email: $s_email \n";



            
    $headers "From: $from \r\n";
            
    $headers .= "Reply-To: $visitor_email \r\n";

            
    mail($to$subject$body,$headers);

            
    header('Location: thank-you.php');
        }
    }

    // Function to validate against any email injection attempts
    function IsInjected($str)
    {
      
    $injections = array('(\n+)',
                  
    '(\r+)',
                  
    '(\t+)',
                  
    '(%0A+)',
                  
    '(%0D+)',
                  
    '(%08+)',
                  
    '(%09+)'
                  
    );
      
    $inject join('|'$injections);
      
    $inject "/$inject/i";
      if(
    preg_match($inject,$str))
        {
        return 
    true;
      }
      else
        {
        return 
    false;
      }
    }
    ?>




    herzlichen Dank für die Hilfe schon mal vorab.

    Achja, vielleicht auch noch zum Fehler. Ich kann alles ausfüllen, komme dann auch auf die "Danke für Ihre Email"-Seite, aber die Email kommt bei mir nie an. (klarerweise habe ich oben die korrekte Emailadresse eingegeben )

    LG
    Patrick


  • #2
    Bei einem check auf http://sandbox.onlinephpfunctions.com/ erhalte ich die Fehlermeldung: session_start() has been disabled for security reasons in . ... Ich vermute, das ist die Ursache, weshalb das Formular nicht mehr funktioniert.
    Nö, das ist dort auf der Seite so, das hat aber nichts mit deiner zu tun.

    Grund ist vermutlich das man mail() nicht - so wie hier - roh verwenden sollte. Dann landet man oft am Spam-Haufen bzw. wird von strengen Mailservern als Spam eingestuft etc...

    Schau mal hier - würde ich auf jeden Fall überarbeiten (lassen):

    https://www.php-rocks.de/thema/51-ht...phpmailer.html

    https://php-de.github.io/jumpto/mail-class/


    Wenn du es nicht selbst machen lassen kannst oder willst, kann ich das gerne in die Scriptbörse hier verschieben.
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Hallo,
      ja, das wäre nett. einen Versuch ist es wert.
      LG

      Kommentar


      • #4
        ok, gerne.

        MOD: Verschoben von PHP-Einsteiger
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar

        Lädt...
        X