如何在函数中为自定义表单正确创建链接.php

我试图在函数中创建自己的形式.php。我做了很多研究,发现使用Post /重定向/ Get来做一个表格是最安全的,以避免重新提交POST请求。一切都很好。表单发送 POST,操作文件处理所有内容,将其保存到 SESSION 并将其重定向回去。表格在页面上:http://plovarnaluhacovice.icreation.cz/my-account/zustatek-kreditu/

但我的问题是,我不希望链接“发送”有一个链接:http://plovarnaluhacovice.icreation.cz/ wp-内容/主题/Divi_Child/进程.php,但出于安全原因,http://plovarnaluhacovice.icreation.cz/ 我的帐户/zustatek-kreditu/进程.php

为了让它变得有点复杂,我使用了WooCommerce插件,这个页面(/zustatek-kreditu/)被添加到WooCommerce“我的帐户”页面菜单(照片)。

http://img.mukewang.com/632e6c630001f94806570223.jpg

形式:


<form action="http://plovarnaluhacovice.icreation.cz/wp-content/themes/Divi_Child/process.php" method="post">

    <p>Uživatelské jméno: <br><input type="text" name="username" /></p>

    <p>Heslo: <br><input type="password" name="password" /></p>

    <br><button type="submit" name="save">Přidat</button>

</form>

文件结构:


wp-内容/主题/ 1.Divi_Child 2.函数.php 3.进程.php


自定义 Woo 商务菜单:


//ZŮSTATEK KREDITU


// ------------------


// 1. Register new endpoint to use for My Account page


// Note: Resave Permalinks or it will give 404 error




function zustatek_kreditu_endpoint() {

    add_rewrite_endpoint( 'zustatek-kreditu', EP_ROOT | EP_PAGES );

}


add_action( 'init', 'zustatek_kreditu_endpoint' );  


// ------------------


// 2. Add new query var


function zustatek_kreditu_query_vars( $vars ) {

    $vars[] = 'zustatek-kreditu';

    return $vars;

}


add_filter( 'query_vars', 'zustatek_kreditu_query_vars', 0 );


// ------------------


// 3. Insert the new endpoint into the My Account menu


function zustatek_kreditu_link_my_account( $items ) {

    $items['zustatek-kreditu'] = 'Zůstatek kreditu';

    return $items;

}


add_filter( 'woocommerce_account_menu_items', 'zustatek_kreditu_link_my_account' );


// ------------------


// 4. Add content to the new endpoint


?>

    <form action="http://plovarnaluhacovice.icreation.cz/wp-content/themes/Divi_Child/process.php" method="post">

        <p>Uživatelské jméno: <br><input type="text" name="username" /></p>

        <p>Heslo: <br><input type="password" name="password" /></p>

        <br><button type="submit" name="save">Přidat</button>

    </form>

<?php   



千巷猫影
浏览 69回答 1
1回答

LEATH

最简单的解决方案是在wp中创建一个页面模板,将其添加到名为“Page-process.php”的主题文件夹中,并将进程.php的所有编码放入此模板中,并将以下文本添加到此模板的顶部:创建一个wp页面,并在“页面属性”元框下选择此模板作为页面模板。在表单代码上,替换刚创建的页面的操作 URL,并将其链接到您创建的新页面模板。操作 =“http://plovarnaluhacovice.icreation.cz/wp-content/themes/Divi_Child/process.php”回顾:您将用WordPress上的普通页面替换您的“porcess.php”,该页面将使用您放置在“进程.php”上的页面PHP代码,但此权限将允许您使用wp页面运行代码,而不是直接在主题PHP文件上运行代码。谢谢,让我知道发生了什么!:)
打开App,查看更多内容
随时随地看视频慕课网APP