表单提交后重定向

时间:2013-04-20 14:59:23

标签: php html wordpress forms

我正在使用Wordpress的Mingle插件供用户注册,因此他们可以在Mingle论坛上发帖。

注册过程有效,但我想在用户提交详细信息后将用户重定向到论坛页面,而不是仅仅停留在注册页面上。

我尝试将<input type="hidden" name="redirect_to" value="<?php echo bloginfo('url'); ?>" />添加到代码中,以便页面重定向(因为它在登录表单上工作),但似乎无法使用注册表单。

我也试过在表格细节中使用“动作”功能;这会重定向页面,但不会提交数据。

页面的代码如下 - 如果可能的话,真的很感激解决方案!感谢。

<form name="registerform" id="registerform" method="post">
<input type="hidden" id="mngl-process-form" name="mngl-process-form" value="Y" />
<input type="hidden" name="redirect_to" value="http://creativespotlights.com/forum" action="http://creativespotlights.com/forum" />
<p>
    <label><?php _e('Username', 'mingle'); ?>*:<br />
    <input type="text" name="user_login" id="user_login" class="input mngl_signup_input" value="<?php echo $user_login; ?>" size="20" tabindex="200" /></label>
</p>
<p>
    <label><?php _e('E-mail', 'mingle'); ?>*:<br />
    <input type="text" name="user_email" id="user_email" class="input mngl_signup_input" value="<?php echo $user_email; ?>" size="25" tabindex="300" /></label>
</p>
<?php if(isset($mngl_options->field_visibilities['signup_page']['name'])) { ?>
  <p>
      <label><?php _e('First Name', 'mingle'); ?>:<br />
      <input type="text" name="user_first_name" id="user_first_name" class="input mngl_signup_input" value="<?php echo $user_first_name; ?>" size="20" tabindex="400" /></label>
  </p>  
  <p>
    <label><?php _e('Last Name', 'mingle'); ?>:<br />
    <input type="text" name="user_last_name" id="user_last_name" class="input mngl_signup_input" value="<?php echo $user_last_name; ?>" size="20" tabindex="500" /></label>
  </p>
<?php } ?>
<?php if(isset($mngl_options->field_visibilities['signup_page']['url'])) { ?>
  <p>
    <label><?php _e('Website', 'mingle'); ?>:<br />
    <input type="text" name="mngl_user_url" id="mngl_user_url" value="<?php echo $mngl_user_url; ?>" class="input mngl_signup_input" size="20" tabindex="600"/></label>
  </p>
<?php } ?>
<?php if(isset($mngl_options->field_visibilities['signup_page']['location'])) { ?>
  <p>
    <label><?php _e('Location', 'mingle'); ?>:<br />
    <input type="text" name="mngl_user_location" id="mngl_user_location" value="<?php echo $mngl_user_location; ?>" class="input mngl_signup_input" size="20" tabindex="700" /></label>
  </p>
<?php } ?>
<?php if(isset($mngl_options->field_visibilities['signup_page']['bio'])) { ?>
  <p>
    <label><?php _e('Bio', 'mingle'); ?>:<br />
    <textarea name="mngl_user_bio" id="mngl_user_bio" class="input mngl-growable mngl_signup_input" tabindex="800"><?php echo wptexturize($mngl_user_bio); ?></textarea></label>
  </p>
<?php } ?>  
<?php if(isset($mngl_options->field_visibilities['signup_page']['sex'])) { ?>
  <p>
    <label><?php _e('Gender', 'mingle'); ?>*:&nbsp;<?php echo MnglProfileHelper::sex_dropdown('mngl_user_sex', $mngl_user_sex, '', 900); ?></label>
  </p>
<?php } ?>

<?php if(isset($mngl_options->field_visibilities['signup_page']['password'])) { ?>
  <p>
    <label><?php _e('Password', 'mingle'); ?>:<br/>
    <input type="password" name="mngl_user_password" id="mngl_user_password" class="input mngl_signup_input" tabindex="1000"/></label>
  </p>
  <p>
    <label><?php _e('Password Confirmation', 'mingle'); ?>:<br />
    <input type="password" name="mngl_user_password_confirm" id="mngl_user_password_confirm" class="input mngl_signup_input" tabindex="1100"/></label>
  </p>
<?php } else { ?>
    <p id="reg_passmail"><?php _e('A password will be e-mailed to you.', 'mingle'); ?></p>
<?php } ?>
<?php if($mngl_options->signup_captcha) { ?>
<?php
   $captcha_code = MnglUtils::str_encrypt(MnglUtils::generate_random_code(6));
?>
<p>
<label><?php _e('Enter Captcha Text', 'mingle'); ?>*:<br />
<img src="<?php echo MNGL_SCRIPT_URL; ?>&controller=captcha&action=display&width=120&height=40&code=<?php echo $captcha_code; ?>" /><br/>
<input id="security_code" name="security_code" style="width:120px" type="text" tabindex="1200" />
<input type="hidden" name="security_check" value="<?php echo $captcha_code; ?>">
</p>
<?php } ?>
  <?php do_action('mngl-user-signup-fields'); ?>

    <br class="clear" />
    <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="mngl-share-button" value="<?php _e('Sign Up', 'mingle'); ?>" tabindex="60" />
</p>
</form>

4 个答案:

答案 0 :(得分:2)

试试这个

<?php    
if (isset($_POST['wp-submit']))
    {   
        header('Location: http://site/result.php');       
    }
?>

位于代码顶部

或者你可以尝试使用javascript with onsubmit =“window.location.href ='result.php';”

答案 1 :(得分:1)

您可以使用:

header('Location: http://yoursite.com/location.php');

但是你必须得到一个干净的输出(在标题之前没有html)。

文档here

答案 2 :(得分:1)

这样的事情应该有效:

if (isset($_POST['user_login']))
{
    (your redirect code here)
}

答案 3 :(得分:1)

表单成功提交后,您应该在同一页面上执行303 redirect。如果用户碰巧按F5或其他形式或重新加载页面,执行此操作将阻止重新提交表单。

wp_redirect("/path/to/my/script", 303);

您需要将/path/to/my/script替换为您的表单所在的网址。