用于通过html表单插入数据的php文件的路径

时间:2019-04-10 作者:David D\'Lima

我有一个HTML表单,可以将数据插入到自定义表中。用于插入数据的代码位于PHP文件中。

我的问题是,在WordPress文件系统中,PHP文件应该放在哪里?我尝试将文件放在根目录中,但不起作用。将其放在wp-content/themes/mytheme文件夹中。不起作用。

找不到错误页。

<form id="XXXForm" method="POST" action="/xxx_insert.php">
非常感谢您的帮助。

大卫

2 个回复
SO网友:Qaisar Feroz

您需要将表单和php表单处理器与Wordpress集成。有一种方法可以在你的主题中做到这一点,如下所示。

在主题文件夹中创建页面模板,如下所述here. 并将表单标记放在其中。

不指定action 并向窗体中添加具有任意名称和值的隐藏字段。我们将对照检查,然后查找该输入以处理表单输入,例如:

<?php 
       /* Template Name: My Form 
*/ 

?>

<form method="POST">
    <input type="hidden" name="my_hidden_field" value="xyz">
    ....
</form>
现在在WP Admin中创建一个页面,并分配上面创建的模板。在浏览器中加载此页面以显示表单。

接下来输入此代码functions.php 你的主题

add_action( \'init\', function() {
    if ( empty( $_POST[\'my_hidden_field\'] ) ) {
        return;
    }

    // handle form submission
    include "xxx_insert.php"; // Replace xxx_insert.php with exact path to php file
}
实现该结果的其他方法是writing a pluginshortcode.

我希望这可能会有所帮助!

SO网友:Tom J Nowell

您不需要专门的PHP文件来放入表单标记。生成表单的代码也应该处理它。那样的话action=""

例如,下面是一个带有基本表单的页面模板:

<?php
/**
 * Page Template: Test Form
 */

if ( empty( $_POST[\'submitted\'] ) ) {
    // the form hasn\'t been submitted, so display it
    ?>
    <form method="POST" action="">
        <input type="hidden" name="submitted" value="yes"/>
        Name: <input type="test" name="name" value=""/>
        <input type="submit">
    </form>
    <?php
} else {
    // it\'s been submitted, process the form
    $name = $_POST[\'name\'];
    ?>
    <p>You said <?php echo esc_html( $name ); ?></p>
    <?php
}
使用专用的PHP文件提交表单也是一个安全问题,并且会带来维护问题(WP函数将不可用,因此您必须引导WP以及随之而来的所有问题)。将PHP文件放在主机的根目录中以用于主题或插件也是一个坏主意

相关推荐

每个html标记上都有一个奇怪的属性

我和我的朋友在Wordpress网站上工作,但我们在机器上的看法不同,当他检查google控制台中的每个html标记时,他都会看到一个奇怪的属性wfd id=”,我也成功地在我的页面中加载了JQuery,但他看不到DOM在我们的机器上的负载不同,有什么问题我们重新加载、刷新、清除缓存以及我们能想到的所有可能的方法我们甚至无法发现问题的根源