【php开源代码栏目提醒】:网学会员--在 php开源代码编辑为广大网友搜集整理了:functions_validate.php绩等信息,祝愿广大网友取得需要的信息,参考学习。
<?php
//
function validate_username($username)
{
//获取输入的数据
global $db, $lang, $userdata;
//字符串比对解析并取代
$username = preg_replace('#\s+#', ' ', trim($username));
$username = phpbb_clean_username($username);
//查询用户
注册的用户名是否存在
$sql = "SELECT username
FROM " . USERS_TABLE . "
WHERE LOWER(username) = '" . strtolower($username) . "'";
//如果查询的结果和获取的结果相同
if ($result = $db->sql_query($sql))
{
while ($row = $db->sql_fetchrow($result))
{
if (($userdata['session_logged_in'] && $row['username'] != $userdata['username']) || !$userdata['session_logged_in'])
{
$db->sql_freeresult($result);
//提示用户名被人占用
return array('error' => true, 'error_msg' => $lang['Username_taken']);
}
}
}
$db->sql_freeresult($result);
//从phpbb_group表中查询用户名,条件是输入的用户名和查询的相同
//strtolower()函数将用户名转化为小写
$sql = "SELECT group_name
FROM " . GROUPS_TABLE . "
WHERE LOWER(group_name) = '" . strtolower($username) . "'";
//判断是否查询到
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
$db->sql_freeresult($result);
//提示用户名被人占用
return array('error' => true, 'error_msg' => $lang['Username_taken']);
}
}
$db->sql_freeresult($result);
//定义从被禁用的表中
查询用户名
$sql = "SELECT disallow_username
FROM " . DISALLOW_TABLE;
//查询到的用户和输入的用户相同
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
do
{
//匹配字符
if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($row['disallow_username'], '#')) . ")\b#i", $username))
{
$db->sql_freeresult($result);
//提示用户名被禁用
return array('error' => true, 'error_msg' => $lang['Username_disallowed']);
}
}
while($row = $db->sql_fetchrow($result));
}
}
$db->sql_freeresult($result);
$
sql = "SELECT word
FROM " . WORDS_TABLE;
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
do
{ //匹配字符
if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($row['
word'], '#')) . ")\b#i", $username))
{
//错误提示,用户名被禁用
$db->sql_freeresult($result);
return array('error' => true, 'error_msg' => $lang['Username_disallowed']);
}
}
while ($row = $db->sql_fetchrow($result));
}
}
$db->sql_freeresult($result);
//判断用户名的是否合法
if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)))
{
return array('error' => true, 'error_msg' => $lang['Username_invalid']);
}
return array('error' => false, 'error_msg' => '');
}
//验证EMAIL的格式,同时验证email是否被禁用
function validate_email($email)
{
global $db, $lang;
//如果输入的email不为空
if ($email != '')
{
//匹配字符
if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email))
{
//查询被禁用的email
$sql = "SELECT ban_email
FROM " . BANLIST_TABLE;
if ($result = $db->sql_query($sql))
{//如果输入的email和禁用表中的email相同
if ($row = $db->sql_fetchrow($result))
{
do
{ //应用*取代.*
$match_email = str_replace('*', '.*?', $row['ban_email']);
//进行正则表达式匹配
if (preg_match('/^' . $match_email . '$/is', $email))
{
$db->sql_freeresult($result);
//email被禁用了
return array('error' => true, 'error_msg' => $lang['Email_banned']);
}
}
while($row = $db->sql_fetchrow($result));
}
}
$db->sql_freeresult($result);
//从数据库中查询email,
$sql = "SELECT user_email
FROM " . USERS_TABLE . "
WHERE user_email = '" . str_replace("\'", "''", $email) . "'";
//判断是否查询到
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, "你不能使用该邮件,该邮件已经有人使用!", "", __LINE__, __FILE__, $sql);
}
//如果查询到的email和用户输入的email相同
if ($row = $db->sql_fetchrow($result))
{ //提示email被人占用
return array('error' => true, 'error_msg' => $lang['Email_taken']);
}
$db->sql_freeresult($result);
return array('error' => false, 'error_msg' => '');
}
}
//不合法的email格式
return array('error' => true, 'error_msg' => $lang['Email_invalid']);
}
//定义函数,如果它们输入必须符合规格,但是可以不填写
function validate_optional_fields(&$icq, &$aim, &$msnm, &$yim, &$website, &