<?php
// The source code packaged with this file is Free Software, Copyright (C) 2005 by
// Ricardo Galli <gallir at uib dot es>.
// It's licensed under the AFFERO GENERAL PUBLIC LICENSE unless stated otherwise.
// You can get copies of the licenses here:
// http://www.affero.org/oagpl.html
// AFFERO GENERAL PUBLIC LICENSE is also included in the file called "COPYING".
include_once('Smarty.class.php');
$main_smarty = new Smarty;
include('config.php');
include(mnminclude.'html1.php');
include_once(mnminclude.'smartyvariables.php');
$type=sanitize($_REQUEST['type'], 2);
$name=js_urldecode($_POST["name"]);
switch ($type) {
case 'username':
if (utf8_strlen($name)<3) { // if username is less than 3 characters
echo $main_smarty->get_config_vars("PLIGG_Visual_CheckField_UserShort");
return;
}
if (preg_match('/\pL/u', 'a')) { // Check if PCRE was compiled with UTF-8 support
if (!preg_match('/^[_\-\d\p{L}\p{M}]+$/iu', $name)) { // if username contains invalid characters
echo $main_smarty->get_config_vars("PLIGG_Visual_CheckField_InvalidChars");
return;
}
} else {
if (!preg_match('/^[^~`@%&=\\/;:\\.,<>!"\\\'\\^\\.\\[\\]\\$\\(\\)\\|\\*\\+\\-\\?\\{\\}\\\\]+$/', $name)) { // if username contains invalid characters
echo $main_smarty->get_config_vars("PLIGG_Visual_CheckField_InvalidChars");
return;
}
}
if(user_exists($name)) { // if username already exists
echo $main_smarty->get_config_vars("PLIGG_Visual_CheckField_UserExists");
return;
}
$vars = array('name' => $name);
check_actions('register_check_field', $vars);
if ($vars['error'])
echo $vars['error'];
else
echo "OK";
break;
case 'email':
if (!check_email($name)) { // if email contains invald characters
echo $main_smarty->get_config_vars("PLIGG_Visual_CheckField_EmailInvalid");
return;
}
if(email_exists($name)) { // if email already exists
echo $main_smarty->get_config_vars("PLIGG_Visual_CheckField_EmailExists");
return;
}
$vars = array('email' => $name);
check_actions('register_check_field', $vars);
if ($vars['error'])
echo $vars['error'];
else
echo "OK";
break;
default:
echo "KO $type";
}
?>