簡體   English   中英

Wordpress 自定義表單操作

[英]Wordpress custom form action

我在整個網絡和論壇上搜索了兩天,以找到我的問題的解決方案(這個網站也是如此)。 這里的一些問題是相似的,但根本沒有幫助我。 好的進入正題,如果有人可以幫助我,我將非常感激。

我在我的自定義 wordpress 主題中制作了一個留言簿。 這本留言簿以我想要的方式出現。 一切都在 phpMyAdmin 中設置並有效。 我遇到的唯一問題是表單 action="" 不起作用。 當我將其留空並填寫留言簿表格時,它只顯示空白內容。

我可以在這些引號之間填寫什么 action="" 網站和論壇上的回答說將其留空,但它沒有給我想要的結果。 當我填寫留言簿表格時,它應該會在有人提交時顯示消息。

這是我的代碼,也許我做錯了什么?

    <?php 

    mysql_connect("blablabla", "blablabla", "blablabla");
    mysql_select_db("blablabla");

    /***************************************************************************************************************/
    //  Form and add stuff area

    echo "<strong>Laat anderen uw mening weten over Bed & Breakfast Nerja</strong>";

    if ($_POST['bericht_btn']) {
            $naam = strip_tags($_POST['naam']);
            $email = strip_tags($_POST['email']);
            $bericht = strip_tags($_POST['bericht']);

            if ($naam && $email && $bericht) {

                    $tijd = datum("h:i A");
                $datum = datum("F d, Y");
                $ip = $_SERVER['REMOTE_ADDR'];

                // Voeg toe aan database
                mysql_query("INSERT INTO gastenboek VALUES (
                        '', '$naam', '$email', 'bericht', 'tijd', 'datum', 'ip'
                )");

                echo "Bedankt. Uw bericht is succesvol toegevoegd aan ons gastenboek.";
            }
            else
                echo "Niet alle velden waren ingevuld.";
            }

            echo "<form action='' method='post' id='form_guestbook'>
                <table><br />
                        <tr>
                            <td>Naam:</td>
                            <td><input type='text' name='naam' style='width: 200px;' /></td>
                        </tr>
                        <tr>
                            <td>Email:</td>
                            <td><input type='text' name='email' style='width: 200px;' /></td>
                        </tr>
                        <tr>
                            <td>Bericht:</td>
                            <td><textarea name='bericht' style='width: 450px; height: 100px; margin-bottom: 20px;'></textarea></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td><input type='submit' name='bericht_btn' value='Plaats bericht' /></td>
                        </tr>
                </table>
            </form>
            <br />";

    /***************************************************************************************************************/
    //  Display stuff area

    //echo "Alle gedeelde meningen";
        echo "<div style='color: red; font-size: 20px;'>Het gastenboek werkt nog niet compleet. Hier wordt aan gewerkt.</div>";                       
    $query = mysql_query("SELECT * FROM gastenboek ORDER BY id DESC");
    $numrows = mysql_num_rows($query);

    echo "<hr />";

    if($numrows > 0){
            while ( $row = mysql_fetch_assoc($query) ) {
                    $id = $row['id'];
                $naam = $row['naam'];
                $email = $row['email'];
                $bericht = $row['bericht'];
                $tijd = $row['tijd'];
                $datum = $row['datum'];
                $ip = $row['ip'];

                $bericht = nl2br($bericht);

                echo "<div>
                        Bericht van <strong>$naam</strong> op <strong>$datum</strong> om <strong>$tijd</strong> <br />
                        $bericht
                        </div><hr />";
                }
            }
            else
                    echo "Er zijn geen berichten gevonden.";

    /***************************************************************************************************************/

    mysql_close();

?>

這段代碼位於gastenboek.php(荷蘭語中的guestbook.php)中,它包含在我的page.php 中,並且僅在特定頁面(留言簿頁面)中顯示。

    <?php
      if ( is_page('gastenboek') ) {
    include 'gastenboek.php';
  }
    ?>

最終頁面 url 如下所示 mywebsite.nl/wordpress/gastenboek(seo 友好 url)

謝謝如果有人可以幫助/幫助我,我認為問題不是那么大,但由於我缺乏與 wordpress 兼容的自定義表單的知識,我似乎無法找到解決方案。


好的,我離解決問題越來越近了。 我已經通過在我的服務器上使用 guestbook.php 文件嘗試了沒有 wordpress 的留言簿。 在這里我可以使用

    <form action="../guestbook.php"

你猜怎么着,它奏效了 xD! 所以問題是以下事情之一或可能兩者兼而有之:

  • 我應該將我的代碼放在 wordpress .php 文件中的什么位置? (目前它在 page.php 文件中,我有一個 if 語句只包含特定頁面的 guestbook.php)

     if ( is_page('name of a page') ) { include 'guestbook.php'; }
  • 我必須在 action="" 的引號之間輸入什么? (我已經嘗試了很多不同的東西,guestbook.php 的路徑,保持它為空,使用永久鏈接代碼,但到目前為止沒有一個對我有用)

改變:

if ($_POST['bericht_btn']) {

到:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

單擊提交不會發布提交的名稱屬性。

或者,您可以使用隱藏輸入。 為此,您可以將其放入表單中:

<input type="hidden" name="submitted" />

然后在您的表單處理程序中使用此檢查:

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

至於表單的action屬性,應該設置為處理它的腳本的url。 看起來顯示表單的腳本與處理表單的腳本相同,所以如果這個腳本被稱為“foo.php”,你應該將 action 屬性設置為“/foo.php”。

問題解決!!!

我必須做以下事情:向表單添加 ID 並更改輸入字段的名稱,因為它與 wordpress 沖突。

我之前更改了輸入類型的名稱,但它沒有用。 我只是忘記為此代碼更改它:

    $name = strip_tags($_POST['formname']);
                            $email = strip_tags($_POST['formemail']);
                            $message = strip_tags($_POST['formmessage']);

無論如何,感謝您的回復 Neil Girardi

暫無
暫無

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

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