Skip to:
Content
Pages
Categories
Search
Top
Bottom

Re: Accents in username

Thanks for your replies. After reading / testing your links, I found a quick working fix. Here’s the plugin code :

<?php
/*
Plugin Name: UTF-8 usernames
Plugin URI:
Description: This plugin enable utf-8 characters in usernames. Mbstring must be enabled in the php.ini.
Author: Amir Habibi
Author URI: http://www.residence-mixte.com/
Version: 0.1
*/

function sanitize_user_mbstring( $raw_username, $username, $strict = false ) {
$raw_username = $username;
$username = strip_tags($username);
// Kill octets
$username = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username);
$username = preg_replace('/&.+?;/', '', $username); // Kill entities

// Usage of 'mb_ereg_replace' instead of 'preg_replace' to preserve accents.
if ( $strict )
$username = mb_ereg_replace('|[^a-z0-9 _.-@]|i', '', $username);

return apply_filters('sanitize_user_mbstring', $username, $raw_username, $strict);

}

add_action('sanitize_user', 'sanitize_user_mbstring', 0, 3);
?>

To work, you must have mstring enabled in your php.ini.

Hope this will help !

chrishajer : our board is in french

Skip to toolbar