繁体   English   中英

WordPress的联系表格不起作用-可能是由于functions.php中的代码

[英]Wordpress Contact Form does not work - probably due to code in functions.php

下面是我的wordpress联系表的代码,可能有一些错误,因为当我输入页面网址http://muzykablog.pl/时,该网址会自动跳转到http://muzykablog.pl/page-kontakt.php?msg_sent =真 ...

这是我的联系页面(page-kontakt.php)中的代码:

<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 } ?>

这是我的函数页面(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: $name\n E-Mail: $email\n 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');
}

这里一定有错误

最好查看mail()函数。 但是看到代码后,它似乎总是会返回true或false,因此它将重定向到?msg_sent = false或?msg_sent = true。 由于某些原因,页面在加载时总是发送表单。 您必须避免这种情况。 表单的动作是functions.php也是很少见的。 您是否要在主页上放置表格?

我认为还有更多更深层次的问题,但是可以在您的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: $name\n E-Mail: $email\n 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');
} 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM