我想创建自己的插件,但我不知道如何处理表单。
例如,我有来自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"
抱歉,我的英语不是很好。非常感谢你的关注。
答案 0 :(得分:3)
通过谷歌搜索%7E
,我发现它是Unix中的保留代码,表示代字号(〜)。由于许多服务器运行Unix操作系统,因此您无法使用符号%7E
。但是,您可以使用可能在网址或网页上某处使用的符号~
。
php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])
从名为$_SERVER
的密钥中获取存储在REQUEST_URI
(这是一个特殊数组)中的字符串。然后用%7E
替换~
的每个出现。在99%的情况下,没有符号被替换,但是仍然可能在URL中出现波形。这非常简单,但echo
回应了编辑过的字符串。
在这种情况下,/sheduled/wp-admin/options-general.php?page=twitterstreamauth
返回字符串$_SERVER['REQUEST_URI']
,找不到符号%7E
,因此字符串只会回显到html代码中。
action="..."
是浏览器在提交表单时需要执行的操作,在这种情况下打开文件options-general.php?page=twitterstreamauth
另外,如果您不知道如何将表单的内容存储到数据库中,那么您还没有阅读足够的PHP书籍。你需要学习PHP + MySQL来存储数据库中的东西。
我希望这有助于您更好地理解代码。