如何创建一个php页面以从html页面收集信息

时间:2016-12-19 作者:Pedro

我已经在wordpress页面上创建了一个表单,我正在尝试将表单的值传递到php页面,这样我就可以发送一封包含这些信息的电子邮件,但我不知道如何创建php页面,我必须将页面保存在哪个文件夹中。

谢谢(第一次使用wordpress);

这是我的表格:我有一个不同的页面(发送电子邮件)来收集数据。

我知道如何编写发送电子邮件页面的代码。。我只是想知道在哪里保存php页面。

<form method="get" action="send-email.php" name="emailForm" onsubmit="return validate()">   
    <div class="form-group"> 
        <label for="name">Name<span id="req">*</span></label><br> 
        <input type="text" class="form-control" id="name" name="name" placeholder="Quantum Management" value=""> 
    </div>

    <div class="form-group">
        <label for="tel">Phone Number<span id="reqTel">*</span></label><br>
        <input type="text" class="form-control" id="tel" name="tel" placeholder="(999) 123-4567" value=""  >
    </div>

    <div class="form-group">
        <label for="email">Email<span id="reqEmail">*</span></label><br>
        <input type="text" class="form-control" id="email" name="email" placeholder="[email protected]" value="" >
    </div>

    <div class="form-group">
        <label for="questions">Questions<span id="reqQuest">*</span></label><br>
        <textarea class="form-control" rows="7" cols="8" id="questions" name="questions" placeholder="Questions" ></textarea>
    </div>

    <div class="form-group">
        <button type="submit" class="btn btn-default" name="submit" value="yes">Submit</button>
    </div>
</form>  

2 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

在这里,我添加了一个此隐藏输入<input type="hidden" name="action" value="your_form_task"> 并将帖子URI更新为<?php echo esc_url( admin_url(\'admin-post.php\') ); ?>.

这是最新的表格-

<form method="get" action="<?php echo esc_url( admin_url(\'admin-post.php\') ); ?>" name="emailForm" onsubmit="return validate()">
    <div class="form-group">
        <label for="name">Name<span id="req">*</span></label><br>
        <input type="text" class="form-control" id="name" name="name" placeholder="Quantum Management" value="">
    </div>

    <div class="form-group">
        <label for="tel">Phone Number<span id="reqTel">*</span></label><br>
        <input type="text" class="form-control" id="tel" name="tel" placeholder="(999) 123-4567" value=""  >
    </div>

    <div class="form-group">
        <label for="email">Email<span id="reqEmail">*</span></label><br>
        <input type="text" class="form-control" id="email" name="email" placeholder="[email protected]" value="" >
    </div>

    <div class="form-group">
        <label for="questions">Questions<span id="reqQuest">*</span></label><br>
        <textarea class="form-control" rows="7" cols="8" id="questions" name="questions" placeholder="Questions" ></textarea>
    </div>

    <div class="form-group">
        <button type="submit" class="btn btn-default" name="submit" value="yes">Submit</button>
    </div>
    <input type="hidden" name="action" value="your_form_task">
</form>
请注意,这非常重要。下面是一个函数,您可以在其中放置逻辑来处理表单数据-

function the_dramatist_form_post_to_admin() {
    /**
     * At this point, $_GET/$_POST variable are available
     *
     * We can do our normal processing here
     */

    // Sanitize the POST field
    // Generate email content
    // Send to appropriate email
    // Or do whatever you want to do.
}
add_action( \'admin_post_nopriv_your_form_task\', \'the_dramatist_form_post_to_admin\' );
add_action( \'admin_post_your_form_task\', \'the_dramatist_form_post_to_admin\' );
听着,还有一件重要的事admin_post_nopriv_admin_post_ 我已经把your_form_task 使用输入名称在表单中声明为隐藏输入值的字符串action. 它实际上是指向要在此函数中提交的表单。和admin_post_nopriv_{$action} 对给定操作的未经身份验证的管理员post请求激发,其中admin_post_{$action} 对给定操作的经过身份验证的管理员post请求激发。在这里$actionyour_form_task. 希望这有帮助。

SO网友:dave

通常,在WordPress中,您不是在代码中创建整个页面,而是创建WordPress用于构建页面的模板。理论上,您可以将此表单指向站点上的任何其他页面,并编写在函数中处理表单数据的代码。活动主题或插件中的php文件。

但我不会为所有这些工作而烦恼,因为你可以只使用预先制作的解决方案。这听起来像是Contact Form 7.

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果