function check_email(obj)
{
val = trim(obj.value); var val_check = $.ajax({
url: "User_Reg.aspx",
type: "POST",
data: "email="+obj.value,
async: false}).responseText;
if(val_check > '0')
{
set_error_msg(obj, '此邮箱已经存在,请选用其他的邮箱!');
return false;
} set_succ_img(obj);
remove_error_img(obj);
return true;
}
我想在User_Reg.aspx中写一个验证数据库中是否存在这个Email,但是我不知道要怎么写返回值才可以再前台表示。谁能帮我
讲讲或者写个简单的例子呢?

解决方案 »

  1.   

    val = trim(obj.value); 不会报错嘛???
    我觉得应该先用JS来验证这个obj.value是不是有效的邮箱地址,如果是再到服务器去验证是否存在 这样可以节省服务器资源.
      至于User_Reg.aspx 按照上面的要求 应该是新建一个页面 然后把vs在User_Reg.aspx生成的所有代码删除 然后在页面内部查询数据库 如果查询到了就Response.Write("0"); 如果没查到就返回0以上的数字
      

  2.   

    先在客户端用js验证用户名和电子邮件是否符合要求(比如长度或者格式要求),然后再调用Ajax到服务器端检查是否存在相关的用户名和点子邮件。
      

  3.   

    在你的判断中如果User_Reg.aspx的返回值大于0就提示存在,那么你要做的是存在电子邮件就Response.Write("1"),否则就Response.Write("0").注意User_Reg.aspx中不能有任何HTML代码。
      

  4.   

    val = trim(obj.value); 这个下面是有验证格式和其他的。我怕代码太多,发的时候就删除了。
    下面是我写的,搞不明白怎么利用 email="+obj.value这个值?帮我看看怎么改改呢?         protected void Page_Load(object sender, EventArgs e)
            {
                if (DNTRequest.IsPost())
                {
                    emailcheck();
                }
            }        protected void emailcheck()
            {
                string email = DNTRequest.GetFormString("email");
                DataTable ds = (new BLL.BLL_Hers_Users()).GetSome("and User_Email='" + email + " '", " uid desc ");            if (ds.Rows.Count != 0)
                {
                    ds.Dispose();
                    Response.Write("1");
                    Response.End();
                }
                else
                {
                    ds.Dispose();
                    Response.Write("0");
                    Response.End();
                }
                
            }
      

  5.   

    还有就是不能有html代码 那连<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
    </body>
    </html>
    这些也不行是嘛?要删除对嘛?
      

  6.   

    按照你的代码要求 aspx里面的所有代码都要删除
      

  7.   

    public class Checkemail : IHttpHandler
        {        public void ProcessRequest(HttpContext context)
            {
                context.Response.Cache.SetCacheability(HttpCacheability.Private);
                DataTable ds = (new BLL.BLL_Hers_Users()).GetSome("and User_Email='" + context + " '", " uid desc ");            if (ds.Rows.Count != 0)
                {
                    ds.Dispose();
                    context.Response.Write("1");
                    context.Response.End();
                }
                else
                {
                    ds.Dispose();
                    context.Response.Write("0");
                    context.Response.End();
                }
            }        public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }写在ashx中,还是有错误,谁帮看看啊?
      

  8.   

    安全的系统要在各层筛选。
    现在前台用js检查一下邮箱的合法性,然后ajax传到测试(有无敏感字符等),数据库那边再测试。
    如果不用ajax,在前台写好一个label也可,平时设置为隐藏,检测出问题后就设置为可见,它会在PostBack后见到的。
      

  9.   

    你使用的什么类库?$.ajax().responseText 确认这句是否正确,包括ajax()的参数
    如果正确就没问题
    只是判断有小错误:if(val_check > '0') 改成if(val_check == '1') 
      

  10.   

    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------分析器错误 
    说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误消息: 未能创建类型“Hers_Beauty.Web.Users.CheckCode1”。源错误: 
    行 1:  <%@ WebHandler Language="C#" CodeBehind="CheckCode.ashx.cs" Class="Hers_Beauty.Web.Users.CheckCode1" %>为什么老是这个错误呢??????????
     
      

  11.   

    实现ICallbackEventHandler接口.
    ASPX代码:
    public partial class Login : System.Web.UI.Page, ICallbackEventHandler
    {
       string callbackResult = string.Empty;
        #region ICallbackEventHandler 成员
        public string GetCallbackResult()
        {
            return callbackResult;
        }
        public void RaiseCallbackEvent(string eventArgument)
        {
            //你要验证的数据库的代码
        }
        #endregion
    }
    JS文件:
        function Login()
        {
            var User=document.getElementById('TxtUser').value;
            var Pass=document.getElementById('TxtPass').value;
            var TxtValidity=document.getElementById('TxtValidity').value;
            if(User==""||Pass==""||TxtValidity=="")
            {
                alert("用户名,密码,验证码均不能为空!");
                return;
            }
            var tempstr="Login$"+User+"$"+Pass+"$"+TxtValidity;
            <%=ClientScript.GetCallbackEventReference(this, "tempstr", "BackInfo", null)%>;
        }
        function BackInfo(str)
        {
            var Mytempstr=str;
            var TmpPos=Mytempstr.split("|");
            if(TmpPos[0]=="Err")
            {
                alert(TmpPos[1]);
                return;
            }
            
            if(TmpPos[0]!="ok")
            {
                alert(str);
                return;
            }
            else
            {
                window.location.href="MainFrame.aspx";
                return;
            }
            //document.getElementById('SelBaby').insertAdjacentHTML("beforeBegin",str);
        }
      

  12.   

    服务端开发一个ashx,客户端ajax访问该ashx页面,服务端接收请求后查询数据库,将结果Response.Write()给客户端。
    客户端收到的responseText就是服务端的Response.Write()内容。
      

  13.   

    我跟踪JS到var val_check = $.ajax({ 
    url: "User_Reg.aspx", 
    type: "POST", 
    data: "email="+obj.value, 
    async: false}).responseText; 
    if(val_check > '0') 
    这句的时候 val_check他的值就是上面那个错误页面。不知道怎么办才好!!!大家帮看看了。谢谢
      

  14.   

        public class Checkemail : IHttpHandler
        {
            public string useremail = string.Empty;
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                string flag = string.Empty;
                string useremail=context.Request.QueryString["email"].ToString();
                if (useremail == "")
                {
                    flag = "1";
                }
                else
                {
                    DataTable ds = (new BLL.BLL_Hers_Users()).GetSome("and User_Email='" + useremail + " '", " uid desc ");.............其中这一句报异常“string useremail=context.Request.QueryString["email"].ToString();”
    未将对象引用设置到对象的实例。CurrentNotification = “context.CurrentNotification”引发了“System.PlatformNotSupportedException”类型的异常。Message = "此操作要求使用 IIS 集成管线模式。",帮看看为什么啊?怎么改呢?我就是想获取页面提交过来的值,该怎么写呢?知道的帮帮忙????