Php 将索引值附加到重复的屏幕名称

Php 将索引值附加到重复的屏幕名称,php,validation,Php,Validation,我将expressionengine用作CMS,但希望覆盖新用户的核心验证。当有人注册为新用户时,系统会检查屏幕名称是否已被使用。如果是,则抛出一个错误标志 我已经找到了执行验证的代码部分,但我想对其进行更改,以便屏幕名称附加一个空格和数字(高于计数值的一个),而不是抛出和出错 因此,“John Smith”改为“John Smith 3”(假设db中还有两个其他“John Smith”屏幕名称) 如何修改此代码以实现此目的 /** -----------------------

我将expressionengine用作CMS,但希望覆盖新用户的核心验证。当有人注册为新用户时,系统会检查屏幕名称是否已被使用。如果是,则抛出一个错误标志

我已经找到了执行验证的代码部分,但我想对其进行更改,以便屏幕名称附加一个空格和数字(高于计数值的一个),而不是抛出和出错

因此,“John Smith”改为“John Smith 3”(假设db中还有两个其他“John Smith”屏幕名称)

如何修改此代码以实现此目的

        /** -------------------------------------
        /**  Is screen name taken?
        /** -------------------------------------*/

        if (strtolower($this->cur_screen_name) != strtolower($this->screen_name))
        {
            $query = $DB->query("SELECT COUNT(*) AS count FROM exp_members WHERE screen_name = '".$DB->escape_str($this->screen_name)."'");

            if ($query->row['count'] > 0)
            {                            
                $this->errors[] = $LANG->line('screen_name_taken');
            }
        }
玩得开心


玩得开心!

我想自动执行此操作-不显示错误消息。我想在不显示错误消息的情况下更新screen\u name的值。如何将$name追加回$this->screen\u name?这是您应该在GUI部分使用jquery/prototype/dojo进行的操作。您可以修改$this->errors[]=$name;在javascript部分,这将更新表单中的“screen\u name”字段。我可以用:$this->screen\u name=$nameSure替换上一个错误行吗?但我不知道这是否能正常工作,这取决于它背后的代码逻辑。试试看:)谢谢。。。如何在该行的屏幕名称和计数值之间添加空格$name=$DB->escape_str($this->screen_name)。$query2->row['count'];我希望自动执行此操作,而不显示错误消息。我想在没有错误消息的情况下更新screen_name的值。如何将$name追加回$this->screen\u name中?这是您应该在GUI部分使用jquery/prototype/dojo处理的问题。您可以修改$this->errors[]=$name;在javascript部分,这将更新表单中的“screen\u name”字段。我可以用:$this->screen\u name=$nameSure替换上一个错误行吗?但我不知道这是否能正常工作,这取决于它背后的代码逻辑。试试看:)谢谢。。。如何在该行的屏幕名称和计数值之间添加空格$name=$DB->escape_str($this->screen_name)。$query2->row['count'];
if (strtolower($this->cur_screen_name) != strtolower($this->screen_name))
{
    $query = $DB->query("SELECT COUNT(*) AS count FROM exp_members WHERE screen_name = '".$DB->escape_str($this->screen_name)."'");

    if ($query->row['count'] > 0)
    {   
        $query2 = $DB->query("SELECT COUNT(*) AS count FROM exp_members WHERE screen_name LIKE '".$DB->escape_str($this->screen_name)."'");
        $name = $DB->escape_str($this->screen_name).$query2->row['count']; 
        $this->errors[] = 'The screen name you choose is taken please use '.$name.' for your new  screen_name);
    }
}