簡體   English   中英

從同一頁面上的php函數調用表單提交操作不起作用

[英]Call form submit action from php function on same page doesnt work

我已經做了一個電子郵件發件人,但是沒有用。 我認為函數甚至都沒有被調用。 如何做到這一點? 我不希望表單在其他頁面上重定向。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
    <head>
        <title>Mail Sender by midas</title>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
    </head>
    <?php
    if(isset($_POST['submitfunc'])) {
        submitfunc();
    }
    else
    //show form
    ?>
    <body>
        <form action="?submitfunc" method="post">
            <p>
                Wyślij jako:<br />
                <input name="nadawca" type="text" /><br />
                <br />
                Odbiorca:<br />
                <input name="odbiorca" type="text" /><br />
                <br />
                Temat:<br />
                <input name="temat" type="text" /><br />
                <br />
                Wiadomość lub kod HTML:<br />
                <textarea name="wiadomosc" style="width: 210px; height: 76px;"></textarea></p>
                <p>
                <input type="submit" value="Wyślij" /></p>
            <p>
                <strong>Autor tej strony nie odpowiada za wiadomości wysłane za pośrednictwem tego skryptu.</strong></p>
        </form>
    </body>

    <?php
        function submitfunc() {
            if(isset($_POST['nadawca']) and isset($_POST['odbiorca']) and isset($_POST['wiadomosc']) and isset($_POST['temat'])) {
                $to      = $_POST['odbiorca'];
                $subject = $_POST['temat'];
                $message = $_POST['wiadomosc'];
                $headers = 'From: ' . $_POST['nadawca'] . "\r\n" .
                    'Reply-To: ' . $_POST['nadawca'] . "\r\n" .
                    'X-Mailer: PHP/' . phpversion();

                // postawienie @ wylaczy wyswietlanie bledow przez to wyrazenie
                $mail_sent = @mail($to, $subject, $message, $headers, '-f ' . $_POST['nadawca']);

                echo $mail_sent ? "Mail sent" : "Mail failed";
            }
            else{
                echo "fail";
            }
        }
    ?>
</html>

1>將表單標簽的action屬性的值更改為“ action?submitfunc”

2>並檢查獲得價值

如下 :

if(isset($_GET['action'])=='submitfunc') {
    submitfunc();
}else
//show form
?>
<body>
    <form action="?action=submitfunc" method="post">
if(isset($_POST['submit'])) {...

    <form action="" method="post">
...

    <input type="submit" value="Wyślij" name="submit"/></p>
...

在您的表格中使用

<input type="hidden" name="submitfunc" value="1" />

沒有名稱的元素

提交功能

請嘗試這個

if(isset($_POST['nadawca'])) {
  submitfunc();
}

看來您要在提交時調用該函數。

嘗試這個

   <form action="" method="post">
        <p>
            Wyślij jako:<br />
            <input name="nadawca" type="text" /><br />
            <br />
            Odbiorca:<br />
            <input name="odbiorca" type="text" /><br />
            <br />
            Temat:<br />
            <input name="temat" type="text" /><br />
            <br />
            Wiadomość lub kod HTML:<br />
            <textarea name="wiadomosc" style="width: 210px; height: 76px;"></textarea></p>
            <p>
            <input type="submit"  value="Wyślij" /></p>
        <p>
            <strong>Autor tej strony nie odpowiada za wiadomości wysłane za pośrednictwem tego skryptu.</strong></p>
    </form>

而且您也不必使用此功能。

嘗試這個

        if(isset($_POST['nadawca']) and isset($_POST['odbiorca']) and isset($_POST['wiadomosc']) and isset($_POST['temat'])) {
            $to      = $_POST['odbiorca'];
            $subject = $_POST['temat'];
            $message = $_POST['wiadomosc'];
            $headers = 'From: ' . $_POST['nadawca'] . "\r\n" .
                'Reply-To: ' . $_POST['nadawca'] . "\r\n" .
                'X-Mailer: PHP/' . phpversion();

            // postawienie @ wylaczy wyswietlanie bledow przez to wyrazenie
            $mail_sent = @mail($to, $subject, $message, $headers, '-f ' . $_POST['nadawca']);

            echo $mail_sent ? "Mail sent" : "Mail failed";
        }
        else{
            echo "fail";
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM