Formulario personalizado, código corto y controlador de envío

4

Tengo un formulario de frontend con un montón de información. Mis requisitos me obligan a usar un código corto personalizado para crear el formulario. Ya he probado una página con ese código abreviado.

Aquí está mi:

<form name="myform" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" enctype="multipart/form-data">

Sobre esta base, debería abrir la misma página (y así fue). Sin embargo, cuando presioné enviar, obtuve 404 en esa misma URL. ¿Hay alguna solución?

ACTUALIZACIÓN # 1

Intento una ruta diferente, usando add_action ('init'):

add_action('init', 'mbro1_intercept_form_input');
function mbro1_intercept_form_input()
{
    if( !(isset($_POST['action_code']) && $_POST['action_code'] == 'mbro_intercept_form_input') )
        return "";
    if( isset( $_POST['submit'] ) )
    {
        //do my code here
        wp_redirect( get_permalink(35) );//page that has [shortcode]
    }
}

Esto ejecuta con éxito mi acción prevista en el envío. ¡Pero! después de la redirección, todavía tiene 404. No sé qué está mal.

    
pregunta ariefbayu 28.04.2011 - 01:19

3 respuestas

0

Tomo die() como solución. Aunque, no prefiero esto.

$redirect_link =  get_permalink(35) ; //page that has form
$script_redirect = "<div>Your form is submitted. Please wait a moment. If your browser didn't redirect, click <a href='$redirect_link'>here</a>.</div>
<script type='text/javasript' language='javascript'> 
    window.location = '$redirect_link';
</script> ";
die( $script_redirect );
    
respondido por el ariefbayu 02.05.2011 - 00:52
0

¿Su formulario tiene una entrada con el nombre "nombre"? Por ejemplo:

<input type="text" name="name">

Si es así, eso causará problemas. Cambia el valor del nombre.

También vea: El 'nombre' del formulario se rompe y va a la página 404 .

    
respondido por el Geert 28.04.2011 - 08:05
0

Supongo que la línea cerca del final

wp_redirect( get_permalink(35) );//page that has form

es lo que está fallando. Yo lo cambiaría a esto

$redirect_link =  get_permalink(35) ; //page that has form
wp_redirect( $redirect_link );  // trigger redirect
exit;

que debería hacer que funcione correctamente

    
respondido por el Norcross 01.05.2011 - 19:36

Lea otras preguntas en las etiquetas