检查用户名可用性问题 [英] Check Username Availability Issue
问题描述
我只是增加了新的功能,我的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的>
< DIV 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 />< DIV 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>
< DIV 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>
< DIV 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屋!