Formularz kontaktowy przekierowujący na stronę nie został znaleziony podczas wysyłania

16

Mam formularz kontaktowy, z którego korzystałem już wiele razy na innych stronach bez WP, ale wydaje się, że nie działa na mojej bieżącej stronie WP , po prostu przekierowuje cię na stronę, której nie znaleziono.

Nie chcę używać żadnych wtyczek do ich tworzenia.

Oto kod:

<form class="form" method="POST" action="<?php the_permalink(); ?>">
    <table border="0" style="float:left;">
        <tbody>
            <tr>
                <td>
                <p>Company Name:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="companyname" id="companyname" /></td>
            </tr>
            <tr>
                <td>
                <p>Your Name:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="name" id="name" /></td>
            </tr>
            <tr>
                <td>
                <p>E-mail:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="email" id="email" /></td>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td>
                <p>Telephone:</p>
                </td>
                <td>&nbsp;</td>
                <td><input type="text" name="tel" id="tel" /></td>
                <td colspan="2">&nbsp;</td>
            </tr>
        </tbody>
    </table>

    <table border="0" style="float:left;" width="450">
        <tbody>
            <tr>
                <td valign="top"><p style="margin-left:42px;margin-right:10px;margin-top:7px;">Enquiry:</p></td>
                <td><textarea name="enquiry"></textarea></td>
            </tr>
            <tr>
                <td colspan="2"><button class="blue medium awesome awesomeforward" type="submit" name="submit">Send message</button></td>
            </tr>
        </tbody>
    </table>        

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

$to = "[email protected]";
$subject = "Teamworks contact enquiry";
$companyname_field = $_POST['companyname'];
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$tel_field = $_POST['tel'];
$enquiry_field = $_POST['enquiry'];


$body = "Hello Teamworks,\n\n You have an enquiry from the website, please see the details below:\n\n Name: $name_field\n Company Name: $companyname_field\n E-Mail: $email_field\n Tel: $tel_field\n Message:\n $enquiry_field\n\n Please reply to the enquiry asap.\n\n Kind Regards \n The Teamworks Website";

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

echo "</br>Thank you for getting in touch, we will contact you shortly.";

} ?>
</form>
Obrabować
źródło
3
spróbuj zmienić pole o nazwie name="name"na coś innego.
Bainternet,
Świetnie, dzięki. Frustrujące, gdy jest to coś tak prostego !! ps Nie mogę oznaczyć cię jako odebraną.
Rob
dodał ją jako odpowiedź, aby można było zaznaczyć to pytanie jako odpowiedź.
Bainternet,

Odpowiedzi:

25

Podczas obsługi formularzy należy upewnić się, że formularz nie ma kilku konkretnych nazw plików, takich jak: imię, dzień, miesiąc, rok, i jestem pewien, że jeszcze kilka, więc doprecyzuj nazwy pól formularza, takie jak: contact_name, contact_day, contact_month, contact_year.

w twoim przypadku zmień name="name"na cokolwiek innego.

Bainternet
źródło