检查用户名可用性问题 [英] Check Username Availability Issue

查看:142
本文介绍了检查用户名可用性问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是增加了新的功能,我的Joomla TPJOBS成分,虽然这不是一个好/完整/活性成分,但只是我添加一个用户名可用性检查,但它不工作,因为它可能是由于该组件。

我的Joomla组件目录是:\的public_html \分量\ com_tpjobs \

修改 tpjobs.html.php(退出)和username_validate.php(创建)

我的Javascript AJAX code :这是在tpjobs.html.php

  //的JavaScript
<脚本类型=文/ JavaScript的>
<! - 
//函数创建Ajax对象
传播pullAjax(){
    一个变种;
    尝试{
        A =新XMLHtt prequest()
    }
    赶上(B)
    {
        尝试
        {
            A =新的ActiveXObject(MSXML2.XMLHTTP)
        }
        赶上(B)
        {
            尝试
            {
                A =新的ActiveXObject(Microsoft.XMLHTTP)
            }
            赶上(B)
            {
                警报(您的浏览器打破了!);返回false
            }
        }
    }
    返回;
}

功能< PHP
定义('_ JEXEC)或死亡(受限访问);


$ USER =用strip_tags(修剪($ _ REQUEST ['用户名']));

如果(strlen的($用户)LT; = 0)
{
  回声json_en code(阵列('code'=> -1,
  '结果'=> 无效的用户名,请重试。
  ));
  死;
}


$查询=选择a.username从#__users其中username ='$用户';


$ DB =安培; JFactory :: getDBO();

$结果= $ DB-> setQuery($查询);

$可用= mysql_num_rows($结果);

如果(可用$)
{
  回声json_en code(阵列('code'=> 1,
  '结果'=> 成功,用户名$用户仍然是可用
  ));
  死;
}
其他
{
  回声json_en code(阵列('code'=> 0,
  '结果'=> 很抱歉,但用户名$用户已被使用。
  ));
  死;
}
死;
?>()
{
    site_root ='';
    VAR X =的document.getElementById('用户名');
    VAR味精=的document.getElementById('味精');
    用户= x.value;

    code ='';
    消息='';
    物镜= pullAjax();
    obj.onreadystatechange =功能(){
        如果(obj.readyState == 4)
        {
            的eval(结果=+ obj.responseText);
            code =导致['code'];
            消息=结果['结果'];
            如果(code< = 0)
            {
                x.style.border =1px的固体#FF0084;
                msg.style.color =#FF1A00;
            }
            其他
            {
                x.style.border =1px的固体#008C00;
                msg.style.color =#73880A;
            }
            msg.innerHTML =消息;
        }
    }
    obj.open(GET,site_root +?username_validate.php用户名=+用户,真正的);
    obj.send(空);
}
//  - >
< / SCRIPT>
<风格>
#username {边界:1px的固体#000;}
< /风格>
 

文件 username_validate.php

 < PHP
定义('_ JEXEC)或死亡(受限访问);

$ USER =用strip_tags(修剪($ _ REQUEST ['用户名']));

如果(strlen的($用户)LT; = 0)
{
  回声json_en code(阵列('code'=> -1,
  '结果'=> 无效的用户名,请重试。
  ));
  死;
}

//查询数据库来检查用户名可用
$查询=选择a.username从#__users其中username ='$用户';

可用$ = TRUE;

如果(可用$)
{
  回声json_en code(阵列('code'=> 1,
  '结果'=> 成功,用户名$用户仍然是可用
  ));
  死;
}
其他
{
  回声json_en code(阵列('code'=> 0,
  '结果'=> 很抱歉,但用户名$用户已被使用。
  ));
  死;
}
死;
?>
 

组件形式:

 <形式的行动=的index.php的方法=邮报名称=regJobSeekerNewENCTYPE =的multipart / form-data的>
  < D​​IV CLASS =COL宽度60>
    <字段集类=tpj_fieldset>
      <传奇><?PHP的回声JText :: _(用户信息); ?>< /传说>
      <表类=admintable>
        &其中; TR>
          < TD类=键><标签=FIRST_NAME> <?PHP的回声JText :: _('FIRST NAME); ?>:< /标签>< / TD>
          < TD><输入类型=文字大小=50最大长度=100NAME =FIRST_NAMEID =FIRST_NAME级=输入框>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=姓氏> <?PHP的回声JText :: _('姓'); ?>:< /标签>< / TD>
          < TD><输入类型=文字大小=50最大长度=100NAME =姓氏ID =姓氏级=输入框>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _(用户名); ?>:< /标签>< / TD>
          < TD><输入类型=文字大小=50最大长度=100NAME =用户名ID =用户名级=输入框><输入类型=按钮的onclick = username_validate();值=查看/>< BR />< D​​IV ID =味精>< / DIV>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _(电子邮件); ?>:< /标签>< / TD>
          < TD><输入类型=文字大小=50最大长度=100NAME =电子邮件ID =电子邮件级=输入框>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('密码'); ?>:< /标签>< / TD>
          < TD><输入类型=密码大小=50最大长度=100NAME =密码ID =密码级=输入框>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('确认密码'); ?>:< /标签>< / TD>
          < TD><输入类型=密码大小=50最大长度=100NAME =密码2ID =密码2级=输入框>< / TD>
        < / TR>
      < /表>
    < /字段集>
  < / DIV>
  < D​​IV CLASS =COL宽度60>
    <字段集类=tpj_fieldset>
      <传奇><?PHP的回声JText :: _(经验/教育); ?>< /传说>
      <表类=admintable>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('当前位置'); ?>:< /标签>< / TD>
          < TD><输入类=输入框类型=文本名称=current_positionID =current_position大小=60最大长度=100值=/>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _(重大); ?>:< /标签>< / TD>
          < TD>< PHP
                        $ list_major = getSelectMajor('id_major','','');
                        回声$ list_major;
                        ?>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('学位'); ?>:< /标签>< / TD>
          < TD>< PHP
                        $ list_degree_level = getSelectDegreeLevel('id_degree_level','','');回声$ list_degree_level;
                    ?>< / TD>
        < / TR>
      < /表>
    < /字段集>
  < / DIV>
  < D​​IV CLASS =COL宽度60>
    <字段集类=tpj_fieldset>
      <传奇><?PHP的回声JText :: _('DESIRED就业); ?>< /传说>
      <表类=admintable>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _(第一产业); ?>:< /标签>< / TD>
          < TD>< PHP
                        $ list_primary_industry = getSelectIndustry('id_industry1','','');
                        回声$ list_primary_industry;
                        ?>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('第二产业'); ?>:< /标签>< / TD>
          < TD>< PHP
                        $ list_secondary_industry = getSelectIndustry('id_industry2','','');
                        回声$ list_secondary_industry;
                        ?>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('位置类型'); ?>:< /标签>< / TD>
          < TD>< PHP
                        $ list_position_type = getSelectPositionType('id_pos_type','','');
                        回声$ list_position_type;
                        ?>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('最低工资'); ?>:< /标签>< / TD>
          < TD NOWRAP =NOWRAP><输入类=输入框类型=文本名称=min_salaryID =min_salary大小=40最大长度=100值=/>
            < PHP
                        $ list_salary_type = getSelectTypeSalary('id_type_salary','','');
                        回声$ list_salary_type;
                        ?>< / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('货币'); ?>:< /标签>< / TD>
          < TD NOWRAP =NOWRAP><输入类=输入框类型=文本名称=currency_salaryID =currency_salary大小=10最大长度=100值=/> < / TD>
        < / TR>
        &其中; TR>
          < TD类=键><标签=名与GT; <?PHP的回声JText :: _('上传照片'); ?>:< /标签>< / TD>
          < TD NOWRAP =NOWRAP><输入类型=文件名称=照片级=输入框/>< / TD>
        < / TR>
      < /表>
    < /字段集>
  < / DIV>
  < PHP
            $ ROWID =(空($行向>!USER_ID))? $行向> USER_ID:空;
            HTML_front_tpjobs :: showCustom($自定义,$ ROWID);
            ?>
  < PHP
            $配置=安培; JComponentHelper :: getParams能够('com_tpjobs');
            $ termid =组$ config->获得(termarticleid');
            $链接= JROUTE :: _(的index.php选项= com_content&放大器;查看=文章和ID =$ termid);
            ?>
  &其中p为H.;
    < PHP
全球$主机;
$大型机> triggerEvent时('onShowOSOLCaptcha',阵列(假));
?>
  &所述; / P>
  < P><?PHP的回声JText :: sprintf的('通过点击你是同意,$链接); ?>&所述; / a取代;&所述; / P>
  <输入类型=按钮值=< PHP的echo JText :: _('我接受建立我的账户');?>中类=按钮的onClick =validateregJobSeekerNew()/>
  <输入类型=隐藏名称=选项值=< PHP的echo $选项;>中/>
  <输入类型=隐藏名称=任务值=savejobseekernew/>
  <输入类型=隐藏名称=ID值=/>
  <输入类型=隐藏名称=boxchecked值=0/>
  <?PHP的回声JHTML :: _('form.token'); ?>
< /形式GT;
< PHP
    }
 

解决方案

 < PHP
定义('_ JEXEC)或死亡(受限访问);


$ USER =用strip_tags(修剪($ _ REQUEST ['用户名']));

如果(strlen的($用户)LT; = 0)
{
  回声json_en code(阵列('code'=> -1,
  '结果'=> 无效的用户名,请重试。
  ));
  死;
}

//查询数据库来检查用户名可用
$查询=选择a.username从#__users其中username ='$用户';
//使用自己的脚本执行上面的查询,如果它回到你的
//结果(行),我们应该返回负,否则一个成功​​的消息。

$ DB =安培; JFactory :: getDBO();

$结果= $ DB-> setQuery($查询);

$可用= mysql_num_rows($结果);

如果(可用$)
{
  回声json_en code(阵列('code'=> 1,
  '结果'=> 成功,用户名$用户仍然是可用
  ));
  死;
}
其他
{
  回声json_en code(阵列('code'=> 0,
  '结果'=> 很抱歉,但用户名$用户已被使用。
  ));
  死;
}
死;
?>
 

I am just adding a new feature to my Joomla TPJOBS component although it's not a good/complete/active component but just I'm adding a user name Availability checker but its not working because it may be due to in this component.

My Joomla Component Directory is : \public_html\components\com_tpjobs\

Editing tpjobs.html.php(exiting) and username_validate.php (created)

My Javascript AJAX Code : which is under tpjobs.html.php

// JavaScript 
<script type="text/javascript">
<!--
//function to create ajax object
function pullAjax(){
    var a;
    try{
        a = new XMLHttpRequest()
    }
    catch(b)
    {
        try
        {
            a = new ActiveXObject("Msxml2.XMLHTTP")
        }
        catch(b)
        {
            try
            {
                a = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch(b)
            {
                alert("Your browser broke!"); return false
            }
        }
    }
    return a;
}

function <?php
defined('_JEXEC') or die('Restricted access');


$user = strip_tags(trim($_REQUEST['username']));

if(strlen($user) <= 0)
{
  echo json_encode(array('code'  =>  -1,
  'result'  =>  'Invalid username, please try again.'
  ));
  die;
}


$query = "Select a.username FROM #__users where username = '$user' ";


$db =& JFactory::getDBO();

$result = $db->setQuery($query);

$available = mysql_num_rows($result);

if($available)
{
  echo json_encode(array('code'  =>  1,
  'result'  =>  "Success,username $user is still available"
  ));
  die;
}
else
{
  echo  json_encode(array('code'  =>  0,
  'result'  =>  "Sorry but username $user is already taken."
  ));
  die;
}
die;
?>()
{
    site_root = '';
    var x = document.getElementById('username');
    var msg = document.getElementById('msg');
    user = x.value;

    code = '';
    message = '';
    obj = pullAjax();
    obj.onreadystatechange = function(){
        if(obj.readyState == 4)
        {
            eval("result = " + obj.responseText);
            code = result['code'];
            message = result['result'];
            if(code <=0)
            {
                x.style.border = "1px solid #FF0084";
                msg.style.color = "#FF1A00";
            }
            else
            {
                x.style.border = "1px solid #008C00";
                msg.style.color = "#73880A";
            }
            msg.innerHTML = message;
        }
    }
    obj.open("GET", site_root + "username_validate.php?username=" + user, true);
    obj.send(null);
}
//-->
</script>
<style>
#username{border: 1px solid #000;}
</style>

File username_validate.php

<?php
defined('_JEXEC') or die('Restricted access');

$user = strip_tags(trim($_REQUEST['username']));

if(strlen($user) <= 0)
{
  echo json_encode(array('code'  =>  -1,
  'result'  =>  'Invalid username, please try again.'
  ));
  die;
}

// Query database to check if the username is available
$query = "Select a.username FROM #__users where username = '$user' ";

$available = true;

if($available)
{
  echo json_encode(array('code'  =>  1,
  'result'  =>  "Success,username $user is still available"
  ));
  die;
}
else
{
  echo  json_encode(array('code'  =>  0,
  'result'  =>  "Sorry but username $user is already taken."
  ));
  die;
}
die;
?>

The Component Form :

<form action="index.php" method="post" name="regJobSeekerNew" enctype="multipart/form-data">
  <div class="col width-60">
    <fieldset class="tpj_fieldset">
      <legend><?php echo JText::_('USER INFORMATION'); ?></legend>
      <table class="admintable">
        <tr>
          <td class="key"><label for="first_name"> <?php echo JText::_('FIRST NAME'); ?>: </label></td>
          <td><input type="text" size="50" maxlength="100" name="first_name" id="first_name" class="inputbox"></td>
        </tr>
        <tr>
          <td class="key"><label for="last_name"> <?php echo JText::_('LAST NAME'); ?>: </label></td>
          <td><input type="text" size="50" maxlength="100" name="last_name" id="last_name" class="inputbox"></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('USERNAME'); ?>: </label></td>
          <td><input type="text" size="50" maxlength="100" name="username" id="username" class="inputbox"><input type="button" onclick="username_validate();" value="Check Availability"/><br /><div id="msg"></div></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('EMAIL'); ?>: </label></td>
          <td><input type="text" size="50" maxlength="100" name="email" id="email" class="inputbox"></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('PASSWORD'); ?>: </label></td>
          <td><input type="password" size="50" maxlength="100" name="password" id="password" class="inputbox"></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('VERIFY PASSWORD'); ?>: </label></td>
          <td><input type="password" size="50" maxlength="100" name="password2" id="password2" class="inputbox"></td>
        </tr>
      </table>
    </fieldset>
  </div>
  <div class="col width-60">
    <fieldset class="tpj_fieldset">
      <legend><?php echo JText::_('EXPERIENCE / EDUCATION'); ?></legend>
      <table class="admintable">
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('CURRENT POSITION'); ?>: </label></td>
          <td><input class="inputbox" type="text" name="current_position" id="current_position" size="60" maxlength="100" value="" /></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('MAJOR'); ?>: </label></td>
          <td><?php 
                        $list_major = getSelectMajor('id_major', '', '');
                        echo $list_major;
                        ?></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('DEGREE LEVEL'); ?>: </label></td>
          <td><?php 
                        $list_degree_level = getSelectDegreeLevel('id_degree_level', '', '');                                               echo $list_degree_level;
                    ?></td>
        </tr>
      </table>
    </fieldset>
  </div>
  <div class="col width-60">
    <fieldset class="tpj_fieldset">
      <legend><?php echo JText::_('DESIRED EMPLOYMENT'); ?></legend>
      <table class="admintable">
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('PRIMARY INDUSTRY'); ?>: </label></td>
          <td><?php 
                        $list_primary_industry = getSelectIndustry('id_industry1', '', '');
                        echo $list_primary_industry;                    
                        ?></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('SECONDARY INDUSTRY'); ?>: </label></td>
          <td><?php 
                        $list_secondary_industry = getSelectIndustry('id_industry2', '', '');
                        echo $list_secondary_industry;                  
                        ?></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('POSITION TYPE'); ?>: </label></td>
          <td><?php 
                        $list_position_type = getSelectPositionType('id_pos_type', '', '');
                        echo $list_position_type;                   
                        ?></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('MINIMUM SALARY'); ?>: </label></td>
          <td nowrap="nowrap"><input class="inputbox" type="text" name="min_salary" id="min_salary" size="40" maxlength="100" value="" />
            <?php 
                        $list_salary_type = getSelectTypeSalary('id_type_salary', '', '');
                        echo $list_salary_type;                 
                        ?></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('IN CURRENCY'); ?>: </label></td>
          <td nowrap="nowrap"><input class="inputbox" type="text" name="currency_salary" id="currency_salary" size="10" maxlength="100" value="" /></td>
        </tr>
        <tr>
          <td class="key"><label for="name"> <?php echo JText::_('UPLOAD A PHOTO'); ?>: </label></td>
          <td nowrap="nowrap"><input type="file" name="photo" class="inputbox" /></td>
        </tr>
      </table>
    </fieldset>
  </div>
  <?php
            $rowid = (!empty($row->user_id)) ? $row->user_id : null;
            HTML_front_tpjobs::showCustom($custom, $rowid);
            ?>
  <?php
            $config = & JComponentHelper::getParams('com_tpjobs');  
            $termid = $config->get('termarticleid');
            $link = JRoute::_("index.php?option=com_content&view=article&id=".$termid);
            ?>
  <p>
    <?php
global $mainframe;
$mainframe->triggerEvent('onShowOSOLCaptcha', array(false));
?>
  </p>
  <p><?php echo JText::sprintf('BY CLICKING YOU ARE AGREE', $link); ?></a></p>
  <input type="button" value="<?php echo JText::_( 'I ACCEPT CREATE MY ACCOUNT' ); ?>" class="button" onClick="validateregJobSeekerNew()" />
  <input type="hidden" name="option" value="<?php echo $option; ?>" />
  <input type="hidden" name="task" value="savejobseekernew" />
  <input type="hidden" name="id" value="" />
  <input type="hidden" name="boxchecked" value="0" />
  <?php echo JHTML::_('form.token'); ?>
</form>
<?php
    }

解决方案

<?php
defined('_JEXEC') or die('Restricted access');


$user = strip_tags(trim($_REQUEST['username']));

if(strlen($user) <= 0)
{
  echo json_encode(array('code'  =>  -1,
  'result'  =>  'Invalid username, please try again.'
  ));
  die;
}

// Query database to check if the username is available
$query = "Select a.username FROM #__users where username = '$user' ";
// Execute the above query using your own script and if it return you the
// result (row) we should return negative, else a success message.

$db =& JFactory::getDBO();

$result = $db->setQuery($query);

$available = mysql_num_rows($result);

if($available)
{
  echo json_encode(array('code'  =>  1,
  'result'  =>  "Success,username $user is still available"
  ));
  die;
}
else
{
  echo  json_encode(array('code'  =>  0,
  'result'  =>  "Sorry but username $user is already taken."
  ));
  die;
}
die;
?>

这篇关于检查用户名可用性问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆