PDA

View Full Version : سوال: ورود به سایت



zohrehomidi
یک شنبه 17 اسفند 1393, 17:09 عصر
سلام برای ورود به سایت من این کدهارو نوشتم وتوی جدول کاربر یه فیلد type گذاشتم که 1باشه یعنی کاربره ،مثلا2باشه مدیره
اما توی ورود میخام طبق این type بگم که اگه 1بود بره به صفحه کاربرا درغیر اینصورت بره به صفحه مدیر
ولی وقتی اجرا میگیرم در هرصورت میره توی صفحه ای که تو else گذاشتم یعنی همون مدیر
ببینید کدهارو


protected void Button1_Click(object sender, EventArgs e)
{
strcon = "Data Source=.\\sqlexpress;initial catalog=myDB;integrated security=true;";
Etesal = new SqlConnection();
Etesal.ConnectionString = strcon;

myCom = new SqlCommand();
myCom.Connection = Etesal;
myCom.CommandText = "select * from tblusers where email='" + TextBox1.Text + "' and pass='" + TextBox2.Text + "'";
Etesal.Open();
dr = myCom.ExecuteReader();

if (dr.HasRows)
{
dr.Read();

if (dr["type"].ToString() == "1")

Response.Redirect("users.aspx");
else
Response.Redirect("admin.aspx");

}
Etesal.Close();

}






و اینم فرم عضویته


protected void Button2_Click(object sender, EventArgs e)
{
strcon = "Data Source=.\\SQLEXPRESS;Initial Catalog=myDB;Integrated Security=true";

Etesal = new SqlConnection();
Etesal.ConnectionString = strcon;

myCom = new SqlCommand();
myCom.Connection = Etesal;
myCom.CommandText = "insert into tblusers(name,username,email,pass,type) values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "',1)";


Etesal.Open();
if (myCom.ExecuteNonQuery() > 0)
{
msg.InnerText = "ثبت نام با موفقیت انجام شد";
}
else
{
msg.InnerText = "خطا در ثبت اطلاعات";
}
Etesal.Close();

notlikeothers
سه شنبه 19 اسفند 1393, 01:38 صبح
سلام. کدت که استاندارد نیس ولی ج میده. Break point بزار و مقادیر چک کن. یا هر مرحله مقادیر بریز تو متغیر و response. Write کن مشخص میشه کجا مشکل داره

taze kar 1
پنج شنبه 21 اسفند 1393, 19:28 عصر
فکر میکنم تو ذخیره عدد 1 مشکل داشته باشید
مثلا 1 با (فاصله)space ذخیره شده یا کاراکتر کاما , هم ذخیره میشه با 1 یا کاما رو نبستید
برید تو جدولتون مستقیما ببیند چجوری ذخیره شده
من فکر میکنم احتمالا اینطوری باشه چون خطای منطقی دیگه ای نمی بینم

ahmad156
پنج شنبه 21 اسفند 1393, 23:15 عصر
اشتباه شما این هست که فکر میکنین مقدار type شما حتما 1 یا صفر هست و طبق کدتون گفتین اگر 1 نبود بره به صفحه admin پس اگر صفر هم نبود میتونه بره به صفحه admin .ولی مشکل اصلی کد شما ساختار کدتون هست.نام گذاری غیر استاندارد،عدم لایه بندی ساختار برنامه،قابلیت حمله Sql Injection ،عدم استفاده صحیح از ADO.NET ، و .... از جمله مشکلات کدتون هست