怎样在注册页面添加一个姓名和学号的验证,要求姓名和学号同时存在并且相对应。
我下了源码,在UserFactory.cs里添加一个Exist的重载,并在Ajax.cs里调用该函数,并在注册页面使用ajaxRead。请问这样行吗?
重载函数如下:
/// <summary>
/// 验证用户真实姓名及学号。
/// </summary>
/// <param name="realname">真实姓名</param>
/// <param name="stuid">学号</param>
/// <returns>如果相符则返回true, 否则返回false</returns>
public static bool Exists(string realname,string stuid)
{
SqlConnection mySqlConnection=new SqlConnection("Data Source=(local);Database=wyustu;uid=wyustu;pwd=28454138lnkm");
mySqlConnection.Open();
SqlCommand objCmd=new SqlCommand();
objCmd.Connection=mySqlConnection;
objCmd.CommandText="select count(*) from check where realname=realname AND stuid=stuid";
return Convert.ToInt32(objCmd.ExecuteScalar()) >= 1;
mySqlConnection.Close();
}
Ajax.cs里的CheckUserName函数改为这样:
public void CheckUserName()
{
if (DNTRequest.GetString("username").Trim() == "")
return;
else
{
string result = "0";
string tmpUsername = DNTRequest.GetString("username").Trim();
if (tmpUsername.IndexOf(" ") != -1)
{
//AddErrLine("用户名中不允许包含全角空格符");
result = "1";
}
else if (tmpUsername.IndexOf(" ") != -1)
{
//AddErrLine("用户名中不允许包含空格");
result = "1";
}
else if (tmpUsername.IndexOf(":") != -1)
{
//AddErrLine("用户名中不允许包含冒号");
result = "1";
}
else if (UserFactory.Exists(tmpUsername))
{
//AddErrLine("该用户名已存在");
result = "1";
}
else if ((!Utils.IsSafeSqlString(tmpUsername)) || (!Utils.IsSafeUserInfoString(tmpUsername)))
{
//AddErrLine("用户名中存在非法字符");
result = "1";
}
// 如果用户名属于禁止名单, 或者与负责发送新用户注册欢迎信件的用户名称相同...
else if (tmpUsername.Trim() == PrivateMessageFactory.SystemUserName || ForumUtils.IsBanUsername(tmpUsername, config.Censoruser))
{
//AddErrLine("用户名 \"" + tmpUsername + "\" 不允许在本论坛使用, 本论坛不允许用户名使用这些词语: " + config.Censoruser.Replace("\n", ",").Replace("\r", ""));
result = "1";
}
}
if(DNTRequest.GetString("username").Trim() == "")
return;
else
{
string result = "0";
string realname = DNTRequest.GetString("realname").Trim();
string stuid = DNTRequest.GetString("stuid").Trim();
if (UserFactory.Exists(realname,stuid))
{
//AddErrLine("真实姓名与学号相符");
result = "1";
}
}
System.Text.StringBuilder xmlnode = new System.Text.StringBuilder();
xmlnode.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
xmlnode.Append("<result>");
xmlnode.Append(result);
xmlnode.Append("</result>");
ResponseXML(xmlnode);
}
上面这样行吗?请高手指教!
另外,我在编译时产生如下错误,怎样解决?我是按帮助文档做的啊,不过对第一点不大理解,第一点是:1. 将您IIS的默认站点路径指向Discuz!NT项目文件夹。(注意确保您配置的IIS站点是以
http://localhost访问的)。
用VS2005发布网站时(本地调试)显示如下,共有十几个:
警告 1 “c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\e4192175\e6bbb9dd\App_Web_bpjuofra.2.cs”中的类型“Discuz.ForumPage.Admin.runforumstatic”与“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\e4192175\e6bbb9dd\assembly\dl3\60f199c3\00a67e9e_bca2c701\Discuz.ForumPage.DLL”中的导入类型“Discuz.ForumPage.Admin.runforumstatic”冲突。将使用“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\e4192175\e6bbb9dd\App_Web_bpjuofra.2.cs”中的类型。 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\e4192175\e6bbb9dd\App_Web_bpjuofra.2.cs
请高手帮帮忙啊!!!!!