用户名: <asp:TextBox ID="txtLogName" runat="server" ></asp:TextBox>
密码:<asp:TextBox ID="txtLogPwd" runat="server" TextMode="Password" ></asp:TextBox>
验证码:<asp:TextBox ID="yanzhengma" runat="server" ></asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdatePanel ID="Test" runat="server"><ContentTemplate>
<img alt="验证码" src="Checkcode.aspx"/>
<asp:LinkButton ID="LinkButton2" runat="server">看不清楚,换一张</asp:LinkButton> </ContentTemplate></asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text=" 登 录 " onclick="btnLogin_Click" />
后台:protected void btnLogin_Click(object sender, EventArgs e)
string connstr = "server=(local);Initial Catalog=Poemroom.comMay 17th;Integrated Security=True";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
string sqlstr = "select username,pwd from Adminuser";
SqlCommand cmd = new SqlCommand(sqlstr, conn);
SqlDataReader Dr;
Dr = cmd.ExecuteReader();
string UserName = txtLogName.Text;
string Password = txtLogPwd.Text;
HttpCookie cookie = Request.Cookies["CheckCode"];
while (Dr.Read())
{
if (UserName == Dr["username"].ToString())
{
Session["Username"] = UserName;
{
if (Password == Dr["pwd"].ToString())
{
Session["Password"] = Password;
Label4.Text = Password;
{
if (cookie.Value == yanzhengma.Text)
{ Response.Redirect("AdminIndex.aspx"); }
if (cookie.Value.ToLower() == yanzhengma.Text)
{ Response.Redirect("AdminIndex.aspx"); }
else
{ Label2.Text = "验证码不正确,请重新输入"; }
}
}
else { Label2.Text = "密码不正确,请重新输入"; }
}}
Dr.Close();
conn.Close(); }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtLogName.Text = Session["Username"].ToString();
txtLogPwd.Text = Session["Password"].ToString();
}
}
6 个解决方案
#1
if (!IsPostBack)
會不會根本沒進去啊~ @@
會不會根本沒進去啊~ @@
#2
我的話會這樣寫
protected void Page_Load(object sender, EventArgs e)
{
this.LoginCheck = true;
if (!IsPostBack)
{
InitPage();
}
/* 這樣才能確保每次都抓到吧 */
txtLogName.Text = Session["Username"].ToString();
txtLogPwd.Text = Session["Password"].ToString();
}
protected void InitPage()
{
// 只有第一次才會進來 (ex: 按了F5更新頁面)
// 通常我還會拿這個,當作來清理頁面用的方法 & 第一次進來這個頁面時的設定用
}
protected void Page_Load(object sender, EventArgs e)
{
this.LoginCheck = true;
if (!IsPostBack)
{
InitPage();
}
/* 這樣才能確保每次都抓到吧 */
txtLogName.Text = Session["Username"].ToString();
txtLogPwd.Text = Session["Password"].ToString();
}
protected void InitPage()
{
// 只有第一次才會進來 (ex: 按了F5更新頁面)
// 通常我還會拿這個,當作來清理頁面用的方法 & 第一次進來這個頁面時的設定用
}
#3
用户名: <asp:TextBox ID="txtLogName" runat="server" ></asp:TextBox>
密码:<asp:TextBox ID="txtLogPwd" runat="server" TextMode="Password" ></asp:TextBox>
验证码:<asp:TextBox ID="yanzhengma" runat="server" ></asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdatePanel ID="Test" runat="server"><ContentTemplate>
<img alt="验证码" src="Checkcode.aspx"/>
<asp:LinkButton ID="LinkButton2" runat="server">看不清楚,换一张</asp:LinkButton> </ContentTemplate></asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text=" 登 录 " onclick="btnLogin_Click" />
你的UpdatePanel为什么是这样用法?没包含在这个里面根本就不会回发到后台吧?虽然UpdatePanel好久不用了
密码:<asp:TextBox ID="txtLogPwd" runat="server" TextMode="Password" ></asp:TextBox>
验证码:<asp:TextBox ID="yanzhengma" runat="server" ></asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdatePanel ID="Test" runat="server"><ContentTemplate>
<img alt="验证码" src="Checkcode.aspx"/>
<asp:LinkButton ID="LinkButton2" runat="server">看不清楚,换一张</asp:LinkButton> </ContentTemplate></asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text=" 登 录 " onclick="btnLogin_Click" />
你的UpdatePanel为什么是这样用法?没包含在这个里面根本就不会回发到后台吧?虽然UpdatePanel好久不用了
#4
this.LoginCheck = true; // 這行 請「註解掉」@@因為我頁面有繼承判斷是否有登入用的
#5
自己调试,一步步看看值到哪里消失
#6
楼主看向这里:
protected void Page_Load(object sender, EventArgs e)
{
// 注意这里,这个事件, 无论是第一次打开页面,还是打开之后点击保存按钮的回调事件,这里都会被优先执行 ,执行完了这里,才会执行后面的Button_Oclick事件,这是执行顺序问题,要搞清楚
if (!IsPostBack)
{
// 有里有些变态,只有第一次打开页面时才会执行,注意!,不包括点击按钮的回调事件,因为如果是点击按钮的回调事件,则 IsPostBack == true
// 注意!按F5的刷新事件,同等于第一次打开页面,它并不是回调事件,所以IsPostBack == false
}
}
protected void Page_Load(object sender, EventArgs e)
{
// 注意这里,这个事件, 无论是第一次打开页面,还是打开之后点击保存按钮的回调事件,这里都会被优先执行 ,执行完了这里,才会执行后面的Button_Oclick事件,这是执行顺序问题,要搞清楚
if (!IsPostBack)
{
// 有里有些变态,只有第一次打开页面时才会执行,注意!,不包括点击按钮的回调事件,因为如果是点击按钮的回调事件,则 IsPostBack == true
// 注意!按F5的刷新事件,同等于第一次打开页面,它并不是回调事件,所以IsPostBack == false
}
}
#1
if (!IsPostBack)
會不會根本沒進去啊~ @@
會不會根本沒進去啊~ @@
#2
我的話會這樣寫
protected void Page_Load(object sender, EventArgs e)
{
this.LoginCheck = true;
if (!IsPostBack)
{
InitPage();
}
/* 這樣才能確保每次都抓到吧 */
txtLogName.Text = Session["Username"].ToString();
txtLogPwd.Text = Session["Password"].ToString();
}
protected void InitPage()
{
// 只有第一次才會進來 (ex: 按了F5更新頁面)
// 通常我還會拿這個,當作來清理頁面用的方法 & 第一次進來這個頁面時的設定用
}
protected void Page_Load(object sender, EventArgs e)
{
this.LoginCheck = true;
if (!IsPostBack)
{
InitPage();
}
/* 這樣才能確保每次都抓到吧 */
txtLogName.Text = Session["Username"].ToString();
txtLogPwd.Text = Session["Password"].ToString();
}
protected void InitPage()
{
// 只有第一次才會進來 (ex: 按了F5更新頁面)
// 通常我還會拿這個,當作來清理頁面用的方法 & 第一次進來這個頁面時的設定用
}
#3
用户名: <asp:TextBox ID="txtLogName" runat="server" ></asp:TextBox>
密码:<asp:TextBox ID="txtLogPwd" runat="server" TextMode="Password" ></asp:TextBox>
验证码:<asp:TextBox ID="yanzhengma" runat="server" ></asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdatePanel ID="Test" runat="server"><ContentTemplate>
<img alt="验证码" src="Checkcode.aspx"/>
<asp:LinkButton ID="LinkButton2" runat="server">看不清楚,换一张</asp:LinkButton> </ContentTemplate></asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text=" 登 录 " onclick="btnLogin_Click" />
你的UpdatePanel为什么是这样用法?没包含在这个里面根本就不会回发到后台吧?虽然UpdatePanel好久不用了
密码:<asp:TextBox ID="txtLogPwd" runat="server" TextMode="Password" ></asp:TextBox>
验证码:<asp:TextBox ID="yanzhengma" runat="server" ></asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdatePanel ID="Test" runat="server"><ContentTemplate>
<img alt="验证码" src="Checkcode.aspx"/>
<asp:LinkButton ID="LinkButton2" runat="server">看不清楚,换一张</asp:LinkButton> </ContentTemplate></asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" Text=" 登 录 " onclick="btnLogin_Click" />
你的UpdatePanel为什么是这样用法?没包含在这个里面根本就不会回发到后台吧?虽然UpdatePanel好久不用了
#4
this.LoginCheck = true; // 這行 請「註解掉」@@因為我頁面有繼承判斷是否有登入用的
#5
自己调试,一步步看看值到哪里消失
#6
楼主看向这里:
protected void Page_Load(object sender, EventArgs e)
{
// 注意这里,这个事件, 无论是第一次打开页面,还是打开之后点击保存按钮的回调事件,这里都会被优先执行 ,执行完了这里,才会执行后面的Button_Oclick事件,这是执行顺序问题,要搞清楚
if (!IsPostBack)
{
// 有里有些变态,只有第一次打开页面时才会执行,注意!,不包括点击按钮的回调事件,因为如果是点击按钮的回调事件,则 IsPostBack == true
// 注意!按F5的刷新事件,同等于第一次打开页面,它并不是回调事件,所以IsPostBack == false
}
}
protected void Page_Load(object sender, EventArgs e)
{
// 注意这里,这个事件, 无论是第一次打开页面,还是打开之后点击保存按钮的回调事件,这里都会被优先执行 ,执行完了这里,才会执行后面的Button_Oclick事件,这是执行顺序问题,要搞清楚
if (!IsPostBack)
{
// 有里有些变态,只有第一次打开页面时才会执行,注意!,不包括点击按钮的回调事件,因为如果是点击按钮的回调事件,则 IsPostBack == true
// 注意!按F5的刷新事件,同等于第一次打开页面,它并不是回调事件,所以IsPostBack == false
}
}