From 0851669b39db770e62374551c9394f0f3a652314 Mon Sep 17 00:00:00 2001 From: Friendika Date: Sun, 14 Nov 2010 00:32:31 -0800 Subject: [PATCH] clean up some regex's for i18n, and eliminate old ereg patterns. --- INSTALL | 3 +-- boot.php | 9 ++++++++- mod/invite.php | 7 ++++--- mod/register.php | 15 +++++++++------ mod/settings.php | 4 ++-- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/INSTALL b/INSTALL index b2b1a703a5..624333e906 100644 --- a/INSTALL +++ b/INSTALL @@ -7,8 +7,7 @@ local .htaccess file - PHP > 5.1. The later the better. You'll need 5.3 for full openssl encryption support - - - PHP *command line* access with register_argc_argv set to true in the + - PHP *command line* access with register_argc_argv set to true in the php.ini file - Mysql 5.x diff --git a/boot.php b/boot.php index 948cca46dc..ad1df4ed13 100644 --- a/boot.php +++ b/boot.php @@ -736,7 +736,7 @@ function hex2bin($s) { if(! function_exists('paginate')) { function paginate(&$a) { $o = ''; - $stripped = ereg_replace("(&page=[0-9]*)","",$_SERVER['QUERY_STRING']); + $stripped = preg_replace('/(&page=[0-9]*)/','',$_SERVER['QUERY_STRING']); $stripped = str_replace('q=','',$stripped); $stripped = trim($stripped,'/'); $url = $a->get_baseurl() . '/' . $stripped; @@ -1444,3 +1444,10 @@ function search($s) { return $o; }} +if(! function_exists('valid_email')) { +function valid_email($x){ + if(preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x)) + return true; + return false; +}} + diff --git a/mod/invite.php b/mod/invite.php index 3f9efc5742..fe706a5244 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -17,12 +17,13 @@ function invite_post(&$a) { $recip = trim($recip); - if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}', $recip)) { - notice( $recip . t(' : ') . t('Not a valid email address.') . EOL); + if(! valid_email($recip)) { + notice( $recip . t(' : ') . t('Not a valid email address.') . EOL); continue; } - $res = mail($recip, t('Please join my network on ') . $a->config['sitename'], $message, "From: " . $a->user['email']); + $res = mail($recip, t('Please join my network on ') . $a->config['sitename'], + $message, "From: " . $a->user['email']); if($res) { $total ++; } diff --git a/mod/register.php b/mod/register.php index 99823f4513..a0a5e5c284 100644 --- a/mod/register.php +++ b/mod/register.php @@ -46,7 +46,7 @@ function register_post(&$a) { // TODO fix some of these regex's for int'l/utf-8. - if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}',$email)) + if(! valid_email($email)) $err .= t(' Not a valid email address.'); if(strlen($username) > 48) $err .= t(' Please use a shorter name.'); @@ -55,19 +55,22 @@ function register_post(&$a) { // I don't really like having this rule, but it cuts down // on the number of auto-registrations by Russian spammers + + $no_utf = get_config('system','no_utf'); - if(! preg_match("/^[a-zA-Z]* [a-zA-Z]*$/",$username)) + $pat = (($no_utf) ? '/^[a-zA-Z]* [a-zA-Z]*$/' : '/^\p{L}* \p{L}*$/u' ); + + $loose_reg = get_config('system','no_regfullname'); + + if((! $loose_reg) && (! preg_match($pat,$username))) $err .= t(' That doesn\'t appear to be your full name.'); - if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}',$email)) - $err .= t(' Not valid email.'); - if(! allowed_email($email)) $err .= t(' Your email domain is not among those allowed on this site.'); $nickname = strtolower($nickname); if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname)) - $err .= t(' Nickname must start with a letter and contain only letters, numbers, dashes, or underscore.') ; + $err .= t(' Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.'); $r = q("SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1", dbesc($nickname) diff --git a/mod/settings.php b/mod/settings.php index eab4ac52e7..0687a498f2 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -86,8 +86,8 @@ function settings_post(&$a) { if($email != $a->user['email']) { $email_changed = true; - if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}',$email)) - $err .= t(' Not valid email.'); + if(! valid_email($email)) + $err .= t(' Not valid email.'); } if(strlen($err)) {