我有一个WordPress的模板页面下面的表格。 每次我提交表单,我得到一个404错误,但我不使用任何形式保留workpress参数名称。
<?php
/**
* Template Name: Registration Template
*/
if(isset($_POST['form-submitted']))
{
if(trim($_POST['runner']) === '') {
$runnerError = 'Please enter runner runner.';
$hasError = true;
} else {
$runner = trim($_POST['runner']);
}
if(trim($_POST['racenumber']) === '') {
$numberError = 'Please enter a race number.';
$hasError = true;
} else {
$racenumber = trim($_POST['racenumber']);
}
$race = trim($_POST['race']);
error_log($race.' '.$runner.' '.$racenumber);
$registrationSubmitted = true;
}
get_header();
echo "<pre>GET "; print_r($_GET); echo "</pre>";
echo "<pre>POST "; print_r($_POST); echo "</pre>";
?>
<div id="container">
<?php
if(isset($registrationSubmitted) && $registrationSubmitted == true)
{
echo '<div class="thanks"><p>The runner has been registered.</p></div>';
}
else
{
$races = // magic array
$selectRaces = '<select name="race" id="race">';
foreach($races as $racez)
{
$selectRaces .= sprintf('<option value=%d>%s</option>',$race->id,$race->name);
}
$selectRaces .= '</select>';
echo apply_filters('the_content','
<form action="'.get_permalink().'" id="form" method="POST">
[one_half last="no"]
<b>Race Details</b><br/>
RaceNumber<input type="text" name="racenumber" id="racenumber"/><br/>
Race'.$selectRaces.'<br/>
[/one_half]
[one_half last="yes"]
<b>Runner Details</b><br/>
ID<input type="text" name="runner" id="runner"/><br/>
Firstname<input type="text" name="first" id="first"/><br/>
Surname<input type="text" name="last" id="last"/><br/>
Gender<input type="text" name="gender" id="gender"/><br/>
DOB<input type="text" name="dob" id="dob"/><br/>
Standard<input type="text" name="standard" id="standard"/><br/>
Company<input type="text" name="company" id="company"/><br/>
[/one_half]
<input type="submit" value="Register Runner"/>
<input type="hidden" name="form-submitted" id="bhaa-submitted" value="true" />
</form>');
}
echo '</div>';
?>
<?php get_footer(); ?>
所以我敢肯定,被提交的参数值我已经定制了自己的404页转储$ _ POST值。
[racenumber] => 5
[race] => 2596
[runner] => 5
[first] =>
[last] =>
[gender] =>
[dob] =>
[standard] =>
[company] =>
[form-submitted] => true
任何人都可以解释我的我的逻辑“isset($ _ POST [”提交表单“])”不被行使?
生成的HTML
<form action="http://localhost/registration/" id="form" method="POST">
<div class="one_half">
<b>Race Details</b><br><br>
RaceNumber<input name="number" id="number" type="text"><br><br>
Race<br>
<select name="race" id="race">
<option value="2596" id="2596">4-Mile-M</option>
<option value="2595" id="2595">2-Mile-W</option>
</select>
编辑
我已经改变了这里设置的下拉列表中选择的值用一个递增的int值,而不是使用sprintf的映射一个字符串值,为int值的代码。 当第一个元素被选中的表单提交,如果第二个选项是挑我得到一个404!
$races = // magic array
$selectRaces = '<select name="race" id="race">';
$i=0;
foreach($races as $racez)
{
$selectRaces .= sprintf('<option value=%d>%s</option>',$i++,$race->name);
}
问题是,WordPress的有些话保留和提交表单时,它会抛出这个错误:
一些我发现myseld和浏览网页的话是:
- 自定义后类型名称
- 分类名称
- “名称”
- “天”
- “月”
- “年”
- “类别”
- “标题”
创建AA自定义表单,并尝试命名一些前缀您输入时要小心。 在我来说,我有一个自定义后类型,称为“历史”,我被命名的输入方式相同。
您是否尝试重置您的永久链接? 可能是什么地方的问题在那里。 这似乎还是看不象问题是isset($_POST['form-submitted'])'
这是可能的页面名称正在使用另一个插件。
WordPress的的get_permalink()
的生成被注入到你的输出HTML的表单标签的URL。
如果你看一下HTML源代码,因为它出现在你的浏览器(例如单击鼠标右键,查看源代码,或右键单击,检查元素),找到这个:
<form action='some_url_here' ...>
我希望这个网址也许应该是一样的,你目前正在浏览一个......也就是说,它告诉浏览器的详细信息发送回相同的PHP文件来处理它的结果。
键入唯一的名称和ID尝试这种形式
<form action="'.get_permalink().'" id="form" method="POST">
[one_half last="no"]
<b>Race Details</b><br/>
RaceNumber<input type="text" name="racenumber" id="racenumber"/><br/>
Race'.$selectRaces.'<br/>
[/one_half]
[one_half last="yes"]
<b>Runner Details</b><br/>
ID<input type="text" name="runner_id" id="runner_id"/><br/>
Firstname<input type="text" name="runner_first" id="runner_first"/><br/>
Surname<input type="text" name="runner_last" id="runner_last"/><br/>
Gender<input type="text" name="runner_gender" id="runner_gender"/><br/>
DOB<input type="text" name="runner_dob" id="runner_dob"/><br/>
Standard<input type="text" name="runner_standard" id="runner_standard"/><br/>
Company<input type="text" name="runner_company" id="runner_company"/><br/>
[/one_half]
<input type="submit" value="Register Runner"/>
<input type="hidden" name="form-submitted" id="bhaa-submitted" value="true" />
</form>
你不能利用后成为本变量
_ajax_nonce _page _per_page _signup_form _total _url _wp_http_referer _wp_original_http_referer _wp_unfiltered_html_comment _wpnonce _wpnonce定制头上传
AA动作1动作active_post_lock add_new add_new_users addmeta admin_bar_front admin_color ADMIN_EMAIL ADMIN_PASSWORD admin_password2 AJAX对齐allblogs ALLUSERS ALT approve_parent批准附件attachment_id附件auth_cookie作者AUTHOR_NAME autocomplete_type auto_draft自动加载页面自动保存
背景附件背景色背景位置-X背景重复banned_email_domains博客BLOG_NAME blog_public blog_upload_space BLOGNAME bulk_edit
ç日历猫category_base CATEGORY_NAME catslist的changeit改变字符集选中复选框明确近期列表关闭评论comment_approved COMMENT_AUTHOR comment_author_email comment_author_url COMMENT_CONTENT COMMENT_DATE COMMENT_ID comment_parent comment_post_ID comment_shortcuts comment_status comments_listing comments_popup confirmdelete CONNECTION_TYPE内容方面CPAGE创建全新的附着CREATEUSER customize_messenger_channel定制customlink标签
日期DATE_FORMAT date_format_custom天的预设头删除分离解散DISPLAY_NAME做DELETE_ALL delete_all2 delete_comments delete_option delete_tags delete_widget deletebookmarks deletecomment删除deletemeta deletepost描述
EDIT_DATE电子邮件错误确切摘录
功能饲料取fheight文件fileupload_maxk过滤find_detached first_comment first_comment_author first_comment_url FIRST_NAME first_page first_post found_post_id fwidth
global_terms_enabled GLOBALS gmt_offset GUID
高度HH隐藏hidden_aa hidden_jj hidden_mm hidden_mn hidden_hh历史主机小时的HTML上传
ID为ID的id id_base illegal_names嵌件廊insertonlybutton临时登录项对象项型
JJ JSON json_data
键
姓氏limited_email_domains link_id link_image LINK_NAME link_rss LINK_URL link_visible linkcheck区域锁定日志logged_in_cookie
米媒体媒体类型菜单menu_items菜单项的菜单项-ATTR标题菜单项目类菜单项-DB-ID菜单项目-描述菜单项对象菜单项对象-ID菜单项,父 - ID菜单项位置菜单项目标菜单项目标题菜单项型菜单项目的URL菜单项-XFN菜单位置菜单名消息元metakeyinput metakeyselect metavalue分钟毫米MN模式monthnum更多移动multi_number
命名导航菜单,地点新NEW_ROLE new_slug NEW_TITLE newcat newcomment_author newcomment_author_email newcomment_author_url newcontent NEWUSER昵称no_placeholder noapi noconfirmation noredir号
偏移oitar选项option_page顺序排序依据
p PB页面page_columns PAGE_ID page_options分页pagegen_timestamp页面名PARENT_ID PASS1 PASS2密码permalink_structure photo_description photo_src phperror ping_status插件plugin_status指针位置后post_category post_data post_format POST_ID POST_ID post_mime_type post_password post_status POST_TITLE post_type post_view帖子帖子ID预览primary_blog PRIVATE_KEY PS PUBLIC_KEY发布PWD
询问
reassign_user重新验证重定向redirect_to的裁判referredby登记注册通知了rememberMe去除背景RemoveHeader可以removewidget复位背景resetheader审查rich_editing机器人角色
小号同样保存savewidget savewidgets屏幕scrollto搜索第二部分全选选择发送send_password句子短show_sticky侧边栏工具条signup_for signup_form_id SITE_ID SITE_NAME站点名称尺寸略熟垃圾邮件的垃圾邮件SRC SS阶段开始静止状态粘subdomain_install提交subpost subpost_id超级管理员
选项卡标签TAG_ID标签名称tag_base tags_input税tax_input标签名称的目标分类TB项文本颜色的小部件-ID主题theme_status拇指TIMEZONE_STRING TIME_FORMAT time_format_custom标题thumbnail_id垃圾丢弃型
undismiss unspam unspammed取消删除untrashed网址update_home_url更新升级upload_filetypes upload_space_check_disabled USE_SSL用户user_ID的USER_LOGIN USER_NAME用户名用户
验证,删除版本的知名度可见
w ^ weblog_title welcome_email welcome_user_email WIDGET_ID widget_number部件-ID插件,最近,评论插件,RSS宽度withcomments withoutcomments wp_customize wp_http_referer wp_screen_options WP-预览WPLANG
X1
Y1年
我有同样的问题,但我发现,当我提交了空输入字段(无需输入字段中的任何值)的正常工作,然后我离开几个输入字段保持为空,而在其他这也是工作的好地方值。
这意味着这个问题是我输入字段的一个不是在Wordpress或在我的代码。