PDA

View Full Version : سوال: تولید و استفاده از کد تصادفی ساده



ya30ien2
جمعه 26 آبان 1391, 00:24 صبح
سلام دوستان من برای قسمت ارتباط با ما اومدم چند کد رو به صورت عکس ذخیره کردم
و گفتم هنگام لود بصورت تصادفی یکی رو انتخاب کنه
تا قبل از این کارا مشکلی در ذخیره نداشتم
اما بعد از انجام این کار از هر چندتا تماسی یکی رو ذخیره میکنه یعنی به کاربر اروری رو که نوشتم میده
مینویسه کد وارد شده صحیح نیست
لطفا بگید در کد زیر چه مشکلی وجود داره :


private int id;
public int Id
{
get { return id; }
set { id = value; }
}

private string name;
public string Name
{
get { return name; }
set { name = value; }
}

private string company;
public string Company
{
get { return company; }
set { company = value; }
}

private string email;
public string EMAIL
{
get { return email; }
set { email = value; }
}

private string phone;
public string Phone
{
get { return phone; }
set { phone = value; }
}

private string text;
public string Text
{
get { return text; }
set { text = value; }
}

private string date;
public string DATE
{
get { return date; }
set { date = value; }
}

private string number;
public string Number
{
get { return number; }
set { number = value; }
}

private Boolean reply;
public Boolean Reply
{
get { return reply; }
set { reply = value; }
}

private string replytext;
public string Replytext
{
get { return replytext; }
set { replytext = value; }
}

private Int32 code;
public Int32 Code
{
get { return code; }
set { code = value; }
}

private Int32 txcode;
public Int32 Txcode
{
get { return txcode; }
set { txcode = value; }
}

string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

public int insert(int record = 0)
{
SqlConnection con = new SqlConnection(conn);
SqlCommand com = con.CreateCommand();

if (code == txcode)
{
try
{
con.Open();
com.CommandText = "INSERT INTO Email (Name,Company,Email,Phone,Text,Number,Reply) VALUES (@name,@company,@email,@phone,@text,@number,@reply )";
com.Parameters.Add("@name", SqlDbType.NVarChar, 50);
com.Parameters.Add("@company", SqlDbType.NVarChar, 100);
com.Parameters.Add("@email", SqlDbType.NVarChar, 50);
com.Parameters.Add("@phone", SqlDbType.VarChar, 13);
com.Parameters.Add("@text", SqlDbType.NText);
com.Parameters.Add("@number", SqlDbType.VarChar, 20);
com.Parameters.Add("@reply", SqlDbType.Bit);
com.Parameters["@name"].Value = name;
com.Parameters["@company"].Value = company;
com.Parameters["@email"].Value = email;
com.Parameters["@phone"].Value = phone;
com.Parameters["@text"].Value = text;
com.Parameters["@number"].Value = number;
com.Parameters["@reply"].Value = "false";
record = com.ExecuteNonQuery();
//com.ExecuteNonQuery();
}
catch (SqlException ex)
{
record = 0;
}

finally
{
con.Close();
}
}
else { record = 2; }
return record;
}




int n;
Email em = new Email();

protected void Page_Load(object sender, EventArgs e)
{
random();
lmess.Visible = false;
}

public void random()
{
Random ran = new Random();
n = ran.Next(1, 8);

switch (n)
{
case 1:
em.Code = 1482;
imgcode.ImageUrl = "~/Image/Code/1482.jpg";

break;
case 2:
em.Code = 2527;
imgcode.ImageUrl = "~/Image/Code/2527.jpg";

break;
case 3:
em.Code = 7468;
imgcode.ImageUrl = "~/Image/Code/7468.jpg";

break;
case 4:
em.Code = 8576;
imgcode.ImageUrl = "~/Image/Code/8576.jpg";

break;
case 5:
em.Code = 3514;
imgcode.ImageUrl = "~/Image/Code/3514.jpg";

break;
case 6:
em.Code = 9092;
imgcode.ImageUrl = "~/Image/Code/9092.jpg";

break;
case 7:
em.Code = 4562;
imgcode.ImageUrl = "~/Image/Code/4562.jpg";

break;
case 8:
em.Code = 5259;
imgcode.ImageUrl = "~/Image/Code/5259.jpg";

break;

}
}




protected void submit_Click(object sender, EventArgs e)
{
Random ran = new Random();
string number =Convert.ToString( ran.Next(100000, 999999));


em.Name = name.Text;
em.Company = company.Text;
em.EMAIL = email.Text;
em.Phone = phone.Text;
em.Text = message.Text;
em.Number = number;

if (TxCode.Text.Length == 4)
{
em.Txcode = Convert.ToInt32(TxCode.Text);

switch (em.insert())
{
case 0:

lmess.Visible = true;
lmess.Text = "اشکال در ارسال پیام .";
break;
case 1:
lmess.Visible = true;
lmess.Text = "پیام شما با موفقیت ارسال شد . کد پیگیری : " + number;
name.Text = "";
company.Text = "";
email.Text = "";
phone.Text = "";
message.Text = "";
TxCode.Text = "";
random();
break;
case 2:
lmess.Visible = true;
lmess.Text = "در وارد کردن کد امنیتی دقت نمایید .";
TxCode.Text = "";
break;
}
}
else
{
lmess.Visible = true;
lmess.Text = "کد امنیتی را وارد نمایید.";
TxCode.Text = "";
}

}

ya30ien2
جمعه 26 آبان 1391, 22:36 عصر
کسی نمیدونه مشکل از کجاست
من گفتم شاید قبل از این که مقدارها رو بخونه صفحه رفرش میشه واسه همین در اولین کار مقدارها رو به کلاس میفرستم و داخل کلاس مقایسه میکنم اما بازم مقادیر کد با هم برابر نیستند نمیدونم واسه چی اینطوری هستش
البته در بعضی مواقع بعضی مواقع هم ثبت میکنه

fakhravari
جمعه 26 آبان 1391, 23:12 عصر
برنامه ضمیمه کن.
احتمال زیاد میدم به پست بک ها و مقادیرت که غیر استاتیکن و...
چرا حالا این روش.
کلی کد کپچا هست!!
مثل این
http://itnevisan.com/Contact.aspx
یا
http://itnevisan.com/Login_To_Site.aspx

ya30ien2
شنبه 27 آبان 1391, 08:25 صبح
اینم فایل ضمیمه

fakhravari
شنبه 27 آبان 1391, 12:29 عصر
تغیر دهید.
public static int n;
public static Email em = new Email();

ya30ien2
شنبه 27 آبان 1391, 12:39 عصر
تغیر دهید.
public static int n;
public static Email em = new Email();
باز هم مثل قبل هستش

fakhravari
شنبه 27 آبان 1391, 13:42 عصر
برای من ثبت میشه کد پیگیری میده

ya30ien2
شنبه 27 آبان 1391, 14:18 عصر
برای من ثبت میشه کد پیگیری میده
یعنی همون بار اول ثبت میشه
لطف میکنید چندبار پشت سر هم امتحان کنید

ya30ien2
شنبه 27 آبان 1391, 14:21 عصر
یادم رفت بگم
من صفحه ای رو که طراحی کردم با ifrom داخل یک صفحه دیگه نمایش میدم
همینطور که میبینید از جاوا اسکریپت استفاده شده واسه همین صفحات قاطی میکرد مجبور شدم با ifrom بیارمش بالا
یعنی ممکنه از این باشه؟

ya30ien2
شنبه 27 آبان 1391, 18:11 عصر
همچنان در انتظار راه حلی برای مشکلم هستم

fakhravari
شنبه 27 آبان 1391, 18:21 عصر
پیام شما با موفقیت ارسال شد . کد پیگیری : 390679
پیام شما با موفقیت ارسال شد . کد پیگیری : 831475
پیام شما با موفقیت ارسال شد . کد پیگیری : 609036
پیام شما با موفقیت ارسال شد . کد پیگیری : 580093
پشت سر هم

ya30ien2
شنبه 27 آبان 1391, 18:29 عصر
پیام شما با موفقیت ارسال شد . کد پیگیری : 390679
پیام شما با موفقیت ارسال شد . کد پیگیری : 831475
پیام شما با موفقیت ارسال شد . کد پیگیری : 609036
پیام شما با موفقیت ارسال شد . کد پیگیری : 580093
پشت سر هم

یعنی بخاطر اینه که از irfom نمایش میدم؟

fakhravari
شنبه 27 آبان 1391, 19:58 عصر
irfom نمیدونم ولی اگر جای شما بودم از کپچا استفاده میکردم.