Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress表单未提交_Php_Wordpress_Forms_Action - Fatal编程技术网

Php Wordpress表单未提交

Php Wordpress表单未提交,php,wordpress,forms,action,Php,Wordpress,Forms,Action,您好,我是WordPress的新手,我已经在WordPress主题中创建了几个php文件。其中detailsform.php由 <form method="post" name="details" action="customerdetails.php"> 在点击提交按钮后,表单必须重定向到customerdetails.php,在php中它工作正常,但在wordpress中它出现404错误(未找到页面)。我将所有新的php文件保存在现有的主题文件夹中 请告诉我这是在浪费我的时

您好,我是WordPress的新手,我已经在WordPress主题中创建了几个php文件。其中detailsform.php由

<form method="post" name="details" action="customerdetails.php">

在点击提交按钮后,表单必须重定向到customerdetails.php,在php中它工作正常,但在wordpress中它出现404错误(未找到页面)。我将所有新的php文件保存在现有的主题文件夹中


请告诉我这是在浪费我的时间。

404错误意味着表单的操作是错误的

<form method="post" name="details" action="customerdetails.php">
                                          ^                   ^

^                   ^
将操作更正为
customerdetails.php的确切路径

问题必须与路径(提交时表单重定向URL)一致,请尝试使用完整URL。 您能否共享放置表单的URL???

//将您的文件customerdetails.php放入当前主题,并使用以下路径:-
// Put your file customerdetails.php in current theme and use following path in action:-

  <form method="post" name="details" action="<?php echo get_template_directory_uri() ?>/customerdetails.php"> 
  • 使用模板编辑php文件。 前
  • 
    //您的php文件保持原样。
    
    由于wordpress有自己独特的处理ajax调用的方法,wordpress也有通过表单提交post http请求的方法。在报告中有更多的细节

    在简要说明中,在wordpress主题上使用functions.php文件:

    您需要做的第一件事是在表单标记的action属性中设置,指向以下url:

    
    

    一旦指向,您需要添加一个隐藏的输入,其中包含name属性action和一个value属性,用于指定操作的名称。然后,需要在functions.php文件上构建处理程序函数。在这里,您将编写处理全局$\u POST$\u REQUEST变量将接收到的数据所需的代码

    function my_handler_function() {
      var_dump($_REQUEST);
      die();
    //request handlers should die() when they complete their task
    }
    
    下一步是使用操作钩子admin\u post\u nopriv\u或admin\u post\u将此函数绑定到表单。它们之间的区别在于表单的放置位置。如果您的表单用于wordpress管理员的自定义功能,那么它是私有的,您可以使用admin\u post hook操作。如果此表单是您的公共内容的一部分,请在下面的示例中使用admin_post_nopriv_uu类似:

    add_action( 'admin_post_nopriv_my_handler_function', 'my_handler_function' );
    
    正如上面的代码示例所示,您需要调用该函数。在第一个参数中,需要传递wordpress提供的操作钩子以及表单中名为action的隐藏输入中指定的操作值,如admin\u post\u nopriv\uu$action\u value。在第二个参数中,需要将构建的函数名放在functions.php文件中。两者都是强制性的

    对于约定事项,通常将函数处理程序的名称设置为与操作输入的值相同,以避免误解并获得更高的可读性

    一旦把所有的东西都放在一起,你所要做的就是测试你的代码

    快乐编码


    PD:如果你想澄清wordpress的这个过程,请查看wp admin/admin post.php文件,但你甚至不敢修改它。

    你的文件路径正确吗?我把php文件放在我的主题文件夹中,它位于htdocs/wp content/themes/my themes。你当前的文件路径是什么?这两个文件是否都存在于同一个目录中??根据当前方向,两者应位于同一路径。是的,我的文件位于同一路径我尝试了路径c:\\xampp\htdocs\wp content\themes\my theme\customerdetails.phpthas错误,这是一个绝对路径,无法工作。使用与域(服务器)类似的路径