با عرض سلام وخسته نباشید
دوستان گرامی ی فایل تست میزارم از مشکلم ببینید میفهمید مشکل کجاست!
فایل در ضمیمه قرار دادم.کسانی که بلدن لطفآ قسمتی که باید اصلاح کنمو بگید به همراه کد ممنون میشم.
دوستان لطفا راهنمایی کنید
کدتون رو قرار بدید
از طریق کلید کد در ادیتور و مشکل را کامل توضیح دهید
من از کد زیر واسه تهیه کد کپچه استفاده میکنم:
string text = "123456789"; string code = ""; Random rnd = new Random(); for (int i = 1; i <= 4; i++) { int start = rnd.Next(0, text.Length); string one_char = text.Substring(start, 1); code += one_char;
کد صحیح درست میشه و نمایش داده میشه.حال میگم وقتی کاربر میخواد وارد بشه اگه نوشته داخل تکست باکس برابر بود با کپچه لینک کنه.کد زیر:
Session.Add("cod", code); Session["code"] = code; Label1.Text = code; protected void Button1_Click(object sender, EventArgs e) { if (TextBox1.Text == Label1.Text) { Response.Redirect("/Nad/PageA/Index.aspx"); } }
حالا هی میگه برابر نیست.
کد کامل:
public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string text = "123456789"; string code = ""; Random rnd = new Random(); for (int i = 1; i <= 4; i++) { int start = rnd.Next(0, text.Length); string one_char = text.Substring(start, 1); code += one_char; } Session.Add("cod", code); Session["code"] = code; Label1.Text = code; } protected void Button1_Click(object sender, EventArgs e) { if (TextBox1.Text == Label1.Text) { Response.Redirect("/Nad/PageA/Index.aspx"); } } }
به شکل زیر اصلاح کنید
public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(!Page.IsPostBack) { string text = "123456789"; string code = ""; Random rnd = new Random(); for (int i = 1; i <= 4; i++) { int start = rnd.Next(0, text.Length); string one_char = text.Substring(start, 1); code += one_char; } Session.Add("cod", code); Session["code"] = code; Label1.Text = code; } } protected void Button1_Click(object sender, EventArgs e) { if (TextBox1.Text == Label1.Text) { Response.Redirect("/Nad/PageA/Index.aspx"); } } }
اقا ایمان دمت گرم ممنون.
الان مشکل اینکه هی میگفت اشتباه حل شد و شرط رو قبول میکنه.
مشکل جدید اینه وقتی پست بک اضافه میکنم دیگه کد کپچه رفرش نمیشه عوض بشه!کد کامل رو میزارم:
public partial class Login_LoginA : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //if (!Page.IsPostBack) //{ string text = "123456789"; string code = ""; Random rnd = new Random(); for (int i = 1; i <= 4; i++) { int start = rnd.Next(0, text.Length); string one_char = text.Substring(start, 1); code += one_char; } Session.Add("cod", code); Session["code"] = code; //} } protected void Button1_Click1(object sender, EventArgs e) { if (txtusername.Text == "") { Label1.Visible = true; } else { Label1.Visible = false; } if (txtpassword.Text == "") { Label2.Visible = true; } else { Label2.Visible = false; } if (txtcaptcha.Text == "") { Label3.Visible = true; } else { Label3.Visible = false; } if (txtusername.Text != "" & txtpassword.Text != "" & txtcaptcha.Text != "") { if (txtcaptcha.Text == Session["code"].ToString()) { Response.Redirect("/Nad/PageA/Index.aspx"); } } else { Label1.Text = "!عدد داخل کادر را اشتباه وارد کرده اید"; Label1.Visible = true; } } protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) { txtcaptcha.Text = ""; Random generator = new Random(); string s = "SecurityCide.aspx?" + generator.Next(); Image2.ImageUrl = s; generator.Next(); } }
ImageButton1 دکمه رفرش یا عوض کردن تصویر کاپچه هستش که میره به صفحه زیر و عکس رو تولید میکنه.
کد صفحه SecurityCide.aspx:
public partial class Login_SecurityCide : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string code = (string)Session["code"]; Bitmap src = new Bitmap("E:/Nad/images/jcaptcha1.png"); Graphics gh = Graphics.FromImage(src); gh.DrawString(code, new Font("Colonna MT", 55, FontStyle.Bold), new SolidBrush(Color.DeepSkyBlue), new PointF(20, 10)); src.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png); //Forte //Gill Sans Ultra Bold توپول //OCR A Extended دیجیتال } }
اقا ایمان راهنمایی لطفا
دوستان عزیز یعنی کسی میست راهنمای کنه؟
هزینه شم پرداخت میکنیم....
مشکلم حل شد.
با اضافه کردن تکه کد زیر به دکمه رفرش کپچر:
protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) { string text = "123456789"; string code = ""; Random rnd = new Random(); for (int i = 1; i <= 4; i++) { int start = rnd.Next(0, text.Length); string one_char = text.Substring(start, 1); code += one_char; } Session.Add("code",code); Label4.Text = code; Random generator = new Random(); string s = "SecurityCide.aspx?" + generator.Next(); Image2.ImageUrl = s; generator.Next(); }
واقعا سپاس گذارم خیلی کمک کردید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)