0

我想创建自己的插件,但我不知道如何处理表单。

例如,我有来自 twitter-stream 插件设置页面的代码:

<form action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="post">
    <label for="consumerkey" style="font-weight:bold;display:block;width:150px;">Consumer Key:</label> <input type="text" value="" id="consumerkey" name="consumerkey" />
    <label for="consumersecret" style="font-weight:bold;display:block;width:150px;margin-top:5px;">Consumer Secret:</label> <input type="text" value="" id="consumersecret" name="consumersecret" />
    <input type="submit" value="Save" style="display:block;margin-top:10px;" />
</form>

我无法理解这一点:

action="php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])"

我读过很多关于 PHP 的书,但只看到了这个:

action="somescript.php" for the URL.

我只是不知道将处理我的表单的代码放在哪里。

我可以将我的代码放在插件的 php 文件中(称为scheduler.php,位于wordpress/wp-content/plugins/scheduler/scheduler.php)吗?

另外,请向我展示一些如何在 wordpress 中处理表单的示例。

顺便说一句,我的设置页面上只需要两个字段:用户名和密码,当管理员按下提交按钮时,我希望字段的内容存储在数据库中。

我仍然无法理解如何

action="php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])"

被转换为

action="/sheduled/wp-admin/options-general.php?page=twitterstreamauth" 

对不起,我的英语不是很好。非常感谢您的关注。

4

1 回答 1

3

通过谷歌搜索%7E,我发现它是 Unix 中的保留代码,代表一个波浪号 (~)。因为很多服务器运行 Unix 操作系统,所以不能使用符号%7E~但是,您可以使用可用于网址或页面某处的符号。

php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])$_SERVER从名为REQUEST_URI. 然后它用 替换每一次%7E出现~。在大约 99% 的情况下,不会替换任何符号,但网址中仍有可能出现波浪号。这很简单,但echo与编辑后的字符串相呼应。

在这种情况下,字符串/sheduled/wp-admin/options-general.php?page=twitterstreamauth由 . 返回$_SERVER['REQUEST_URI'],未找到该符号,%7E因此该字符串只是回显到 html 代码中。

action="..."是提交表单时浏览器需要执行的操作,在这种情况下打开文件options-general.php?page=twitterstreamauth

此外,如果您不知道如何将表单的内容存储到数据库中,那么您就没有阅读足够多的 PHP 书籍。您需要学习 PHP + MySQL 才能将某些内容存储在数据库中。

我希望这可以帮助您更好地理解代码。

于 2012-12-07T21:28:22.453 回答