Skip to:
Content

bbPress.org

Ticket #1465: login-redirect.diff

File login-redirect.diff, 1.5 KB (added by GautamGupta, 15 years ago)
  • bbp-general-template.php

     
    355355 * @since bbPress (r2815)
    356356 *
    357357 * @param string $url Pass a URL to redirect to
    358  * @uses home_url() To get the url
     358 * @uses wp_get_referer() To get the referer
     359 * @uses esc_attr() To escape the url
    359360 * @uses apply_filters() Calls 'bbp_redirect_to_field' with the referer field
    360361 *                        and url
    361362 */
    362363function bbp_redirect_to_field( $url = '' ) {
    363         // If no URL is passed, use request
    364         if ( empty( $url ) && !empty( $_SERVER['HTTP_REFERER'] ) )
    365                 $url = esc_url( $_SERVER['HTTP_REFERER'] );
     364        // If no URL is passed, try to get the referer and then the request uri
     365        if ( empty( $url ) && !$url = wp_get_referer() && !empty( $_SERVER['REQUEST_URI'] ) )
     366                $url = $_SERVER['REQUEST_URI'];
    366367
     368        $url = (string) esc_attr( $url );
     369
    367370        $referer_field = '<input type="hidden" name="redirect_to" value="' . $url . '" />';
    368371
    369372        echo apply_filters( 'bbp_redirect_to_field', $referer_field, $url );
     
    410413
    411414                // Treat different kinds of fields in different ways
    412415                switch ( $input_type ) {
    413                         case 'text' :
     416                        case 'text'     :
    414417                        case 'textarea' :
    415418                                $retval = esc_attr( stripslashes( $pre_ret_val ) );
    416419                                break;
    417420
    418421                        case 'password' :
    419                         case 'select' :
    420                         case 'radio' :
     422                        case 'select'   :
     423                        case 'radio'    :
    421424                        case 'checkbox' :
    422425                        default :
    423426                                $retval = esc_attr( $pre_ret_val );