diff --git a/inc/class-admin.php b/inc/class-admin.php index 7df48fb8..b6b24d02 100644 --- a/inc/class-admin.php +++ b/inc/class-admin.php @@ -77,13 +77,17 @@ public function handle_page() { echo '' . esc_html__( 'Clear All', 'wp-native-php-sessions' ) . ''; } echo '

' . esc_html__( 'Pantheon Sessions', 'wp-native-php-sessions' ) . '

'; - if ( isset( $_GET['message'] ) && in_array( $_GET['message'], [ 'delete-all-session', 'delete-session' ], true ) ) { - if ( 'delete-all-session' === $_GET['message'] ) { + // Check for success message transient. + $transient_key = 'pantheon_sessions_message_' . get_current_user_id(); + $session_message = get_transient( $transient_key ); + if ( $session_message ) { + if ( 'delete-all-session' === $session_message ) { $message = __( 'Cleared all sessions.', 'wp-native-php-sessions' ); - } elseif ( 'delete-session' === $_GET['message'] ) { + } elseif ( 'delete-session' === $session_message ) { $message = __( 'Session cleared.', 'wp-native-php-sessions' ); } echo '

' . esc_html( $message ) . '

'; + delete_transient( $transient_key ); } echo ''; @@ -113,7 +117,12 @@ public function handle_clear_session() { $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->pantheon_sessions WHERE session_id=%s", sanitize_text_field( $_GET['session'] ) ) ); $message = 'delete-session'; } - wp_safe_redirect( add_query_arg( 'message', $message, wp_get_referer() ) ); + + // Set a transient to show success message (expires in 30 seconds). + $transient_key = 'pantheon_sessions_message_' . get_current_user_id(); + set_transient( $transient_key, $message, 30 ); + + wp_safe_redirect( wp_get_referer() ); exit; } diff --git a/pantheon-sessions.php b/pantheon-sessions.php index c1e1f1f1..bdb5ad13 100644 --- a/pantheon-sessions.php +++ b/pantheon-sessions.php @@ -332,7 +332,7 @@ public static function check_native_primary_keys() { $wpdb->esc_like( $old_table ) ); // Check for table existence and delete if present. - if ( $wpdb->get_var( $query ) == $old_table ) { + if ( $wpdb->get_var( $query ) === $old_table ) { $cli_key_finalize = $wp_cli_cmd . 'pantheon session primary-key-finalize'; $cli_key_revert = $wp_cli_cmd . 'pantheon session primary-key-revert'; @@ -539,7 +539,7 @@ public function add_single_index( $prefix, $output = [], $multisite = false ) { */ $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $temp_clone_table ) ); - if ( $wpdb->get_var( $query ) == $temp_clone_table ) { + if ( $wpdb->get_var( $query ) === $temp_clone_table ) { $query = "DROP TABLE {$temp_clone_table};"; $wpdb->query( $query ); } @@ -549,7 +549,7 @@ public function add_single_index( $prefix, $output = [], $multisite = false ) { } $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table ) ); - if ( ! $wpdb->get_var( $query ) == $table ) { + if ( $wpdb->get_var( $query ) !== $table ) { $this->safe_output( __( 'This site does not have a pantheon_sessions table, and is being skipped.', 'wp-native-php-sessions' ), 'log' ); $output['no_session_table'] = isset( $output['no_session_table'] ) ? $output['no_session_table'] + 1 : 1; @@ -626,7 +626,7 @@ public function add_single_index( $prefix, $output = [], $multisite = false ) { $old_table = esc_sql( $prefix . 'bak_' . $unprefixed_table ); $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $old_table ) ); - if ( $wpdb->get_var( $query ) == $old_table ) { + if ( $wpdb->get_var( $query ) === $old_table ) { $query = "DROP TABLE {$old_table};"; $wpdb->query( $query ); } @@ -653,7 +653,7 @@ public function primary_key_finalize_single( $prefix = null, $output = [], $mult $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table ) ); // Check for table existence and delete if present. - if ( ! $wpdb->get_var( $query ) == $table ) { + if ( $wpdb->get_var( $query ) !== $table ) { /** * If dealing with multisites, it's feasible that some may have a * table and some may not, so don't stop execution if it's not found. @@ -706,7 +706,7 @@ public function primary_key_revert_single( $prefix = null, $output = [], $multis $type = 'log'; } - if ( ! $wpdb->get_var( $query ) == $old_clone_table ) { + if ( $wpdb->get_var( $query ) !== $old_clone_table ) { $this->safe_output( __( 'There is no old table to roll back to.', 'wp-native-php-sessions' ), $type ); $output['no_rollback_table'] = isset( $output['no_rollback_table'] ) ? $output['no_rollback_table'] + 1 : 1;