WordPress Contact Form does not work – probably due to code in functions.php

Below is the code to my wordpress contact form, probably there is some mistake because when I enter my page url http://muzykablog.pl/ the url jumps automatically to http://muzykablog.pl/page-kontakt.php?msg_sent=true

This is the code inside my contact page (page-kontakt.php) :

Read More
<h4>Send Us Mail</h4><br/>


    <?php
if ($_GET[msg_sent]=='true' ) {
    echo '<div>Your message has been sent!</div>';
}elseif ($_GET[msg_sent]=='false') {
    echo '<div>An error occurred sending your message.</div>';
}else{
?>           

                                <form method="post" action="functions.php">
            <label>Name</label>
            <input name="name" placeholder="Type Here">

            <label>Email</label>
            <input name="email" type="email" placeholder="Type Here">

            <label>Message</label>
            <textarea name="message" placeholder="Type Here"></textarea>

            <label>*What is 2+2? (Anti-spam)</label>
            <input name="human" placeholder="Type Here">

            <input id="submit" name="submit" type="submit" value="Submit">

        </form>

        <?php } ?>

This is the code inside my functions page (functions.php) :

// KONTAKT - MESSAGE SENDING FUNCTIONS FOR page-kontakt.php


    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: http://muzykablog.pl/'; 
    $to = 'piterdeja@gmail.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];

    $body = "From: $namen E-Mail: $emailn Message:n $message";

    if(mail($to, $subject, $body, $from)){
    header('Location:page-kontakt.php?msg_sent=true');
}else{
    header('Location:page-kontakt.php?msg_sent=false');
}

There has to be some mistake here

Related posts

1 comment

  1. It could be better to see the mail() function. But seeing the code it seems it will always return true or false so it will redirect to ?msg_sent=false or ?msg_sent=true. For some reason your page is always sending the form when loads. You must avoid that. Its rare too that the action of the form is functions.php. Are you trying to put the form in the home page?

    I think there are more deep problems but it could be arranged (not very pro) with this in your functions.php

    if($_POST['human']!=""){
    
    $name = $_POST['name'];
    
    $email = $_POST['email'];
    
    $message = $_POST['message'];
    
    $from = 'From: http://muzykablog.pl/'; 
    $to = 'piterdeja@gmail.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];
    $body = "From: $namen E-Mail: $emailn Message:n $message";
    if(mail($to, $subject, $body, $from)){
    header('Location:page-kontakt.php?msg_sent=true');
    }else{
    header('Location:page-kontakt.php?msg_sent=false');
    } 
    }
    

Comments are closed.