重定向后保存变量

时间:2019-02-25 作者:Emily Childers

重定向到其他页面后,是否有办法保存变量。例如我想将表单中提交的密码保存到变量$temp\\u passkey中,并能够在我重定向的下一页访问它。

我尝试通过url传递参数,但我不希望数据在url中可见,因此我需要另一种方法,或者在重定向后从url隐藏add\\u query\\u arg数据。

function process_my_form() {

        if ( ! empty($_POST[\'password\']) ) {
            $temp_passkey = ($_POST[\'password\']);
        }

        wp_safe_redirect( esc_url_raw( add_query_arg( \'bid_passkey\', $temp_passkey, \'/secure-window\' ) ) );
        exit;
    }
    add_action( \'admin_post_process_my_form\', \'process_my_form\' );
    add_action( \'admin_post_nopriv_process_my_form\', \'process_my_form\' );

1 个回复
SO网友:majick

您可以将密码存储为临时密钥,然后在URL中传递临时密钥,以便在下一页上使用该密钥检索密码。

function process_my_form() {

        if ( ! empty($_POST[\'password\']) ) {
            $password = ($_POST[\'password\']);
        } else {return;}

        /* Store Password via Transient API */
        $passkey = wp_generate_password(12, false);
        add_transient($passkey, $password, 300);

        wp_safe_redirect( esc_url_raw( add_query_arg( \'passkey\', $passkey, \'/secure-window\' ) ) );
        exit;
}
add_action( \'admin_post_process_my_form\', \'process_my_form\' );
add_action( \'admin_post_nopriv_process_my_form\', \'process_my_form\' );

/* Example */
function process_password() {

    if ( !strstr($_SERVER[\'REQUEST_URI\'], \'secure-window\' ) {return;}
    if ( !isset($_POST[\'passkey\']) ) {return;}

    $passkey = $_POST[\'passkey\'];
    $password = get_transient($passkey);
    delete_transient($passkey);

    /* ... ... */
}
add_action( \'init\', \'process_password\' );

相关推荐

PHP variables in mysql query

关于如何使用$wpdb->insert 语法:($table, array($column=>$value),$format)?我知道这不管用:$wpdb->update(\'wp_mytable\', array(\'product\'=>\"$product\")); 这也不是:$wpdb->update(\'wp_mytable\', array(\'product\'=>$product)); 这也不是:$insert_row