PDA

View Full Version : سوال: تعریف شرط برای کد



r_s1389@yahoo.com
پنج شنبه 02 خرداد 1392, 12:54 عصر
سلام
من یه کد نوشتم برای ارسال پسوورد به ایمیل کسی که فراموش کرده
اول کاربر username , mail خود را وارد میکنه (یکی رو ) اگر موجود بود بره براش یک پسورود جدید درست کنه بعد ارسال کنه اینم بگم که یک کپچا هم گذاشتم اینم کد ما که تو شرط بندی مشکل دارم
(اگر کاربر نبود ارسال نکنه )
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Mail;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class RecoverPassword : System.Web.UI.Page
{
string pass;
string tpass;
string mail;
private connection con = new connection();
SmtpClient obj = new SmtpClient();
MailMessage MailMsg = new MailMessage();

protected void Page_Load(object sender, EventArgs e)
{
string ABC = "QWERTYUIOPLKJHGFDSAZXCVBNM1234567890";
Random rnd = new Random();
object ABC1 = rnd.Next(1, 36);
object ABC2 = rnd.Next(1, 36);
object ABC3 = rnd.Next(1, 36);
object ABC4 = rnd.Next(1, 36);
object ABC5 = rnd.Next(1, 36);
object ABC6 = rnd.Next(1, 36);
string strABC1 = ABC.Substring(Convert.ToInt32(ABC1), 1);
string strABC2 = ABC.Substring(Convert.ToInt32(ABC2), 1);
string strABC3 = ABC.Substring(Convert.ToInt32(ABC3), 1);
string strABC4 = ABC.Substring(Convert.ToInt32(ABC4), 1);
string strABC5 = ABC.Substring(Convert.ToInt32(ABC5), 1);
string strABC6 = ABC.Substring(Convert.ToInt32(ABC6), 1);
string result = strABC1 + strABC2 + strABC3 + strABC4 + strABC5 + strABC6;
if (!IsPostBack)
{
Session.Add("result", result);
//Label4.Text = result;
Bitmap bmp = new Bitmap(Server.MapPath("~/cap-img/Untitled-3.jpg"));
Graphics g = Graphics.FromImage(bmp);
g.DrawString(result.ToString(), new Font("arial", 14, FontStyle.Italic), Brushes.Red, new PointF());
bmp.Save(Server.MapPath("~/cap-img/secuertiyimage.jpg"));
Image11.ImageUrl = "~/cap-img/secuertiyimage.jpg";

}
}
protected void Button3_Click(object sender, EventArgs e)
{

DataTable dt = new DataTable();
string result = (string)Session["result"];
if (TextBox4.Text == result)
{
try
{
SqlCommand cmd =
new SqlCommand("select pass,tpass,mail from users where mail = @mail or username=@username",
con.conect);

cmd.CommandType = CommandType.Text;

cmd.Parameters.AddWithValue("@mail", TextBox3.Text);
cmd.Parameters.AddWithValue("@username", TextBox3.Text);

SqlDataAdapter da = new SqlDataAdapter(cmd);


con.conect.Open();
da.Fill(dt);
con.conect.Close();

pass = dt.Rows[0]["pass"].ToString().Trim();
tpass = dt.Rows[0]["tpass"].ToString().Trim();
mail = dt.Rows[0]["mail"].ToString().Trim();


if (pass ==null)
{
Random rand = new Random();
string Passwords = rand.Next().ToString();
pass = Passwords.ToString();
tpass = Passwords.ToString();

SqlCommand cmd1 = new SqlCommand("update users set pass = @pass,tpass=@tpass", con.conect);

cmd1.CommandType = CommandType.Text;

cmd1.Parameters.AddWithValue("@pass", pass.ToString());
cmd1.Parameters.AddWithValue("@tpass", tpass.ToString());


con.conect.Open();
cmd1.ExecuteNonQuery();
con.conect.Close();




MailMsg.To.Clear();

MailMsg.To.Add(new MailAddress(mail.ToString()));
MailMsg.From = new MailAddress("ramin.sahandi@yahoo.com");
MailMsg.Subject = " Recoverpassword";
MailMsg.BodyEncoding = System.Text.Encoding.UTF8;
MailMsg.IsBodyHtml = true;
obj.Host = "smtp.mail.yahoo.com";

System.Net.NetworkCredential basicAuthenticaionInfo =
new System.Net.NetworkCredential("ramin.sahandi@yahoo.com", "090000000345");

obj.UseDefaultCredentials = false;

obj.Credentials = basicAuthenticaionInfo;

MailMsg.Body = "رمز عبور جدید شما '" + pass +
"' توصیه میکنیم در اواین فرصت رمز عبور خود را تغییر دهید";
MailMsg.IsBodyHtml = true;
}
try
{
obj.Send(MailMsg);
lblMsg.Text = "یک ایمیل برای شما فرستاده شد که حاوی رمز عبور جدید میباشد";
TextBox3.Text = "";
TextBox4.Text = "";


}

catch (Exception ex)
{
lblMsg.Text = ex.ToString();
TextBox3.Text = "";
TextBox4.Text = "";

}


}
else
{
Label4.Text = "کد امنیتی به درستی وارد نشده است";
}







}
}

aspmaker
پنج شنبه 02 خرداد 1392, 16:42 عصر
اگر شیئی مثل SqlDataReader بود میشد از این کد استفاده کرد:

SqlConnection cnnConnection = new SqlConnection(clsConnectionString.ReadMyConnection );
SqlCommand cmdCommand = new SqlCommand(clsSP.sp_GetMessageDetailsByID_GUID, cnnConnection);
cmdCommand.CommandType = System.Data.CommandType.StoredProcedure;
cmdCommand.Parameters.AddWithValue("@ID", strID);
cmdCommand.Parameters.AddWithValue("@UserCode", clsFunction.GetUserGUID(User.Identity.Name));
SqlDataReader sqlreade;
cnnConnection.Open();
sqlreade = cmdCommand.ExecuteReader();
if (sqlreade.HasRows)
{
sqlreade.Read();
lblBody.Text = sqlreade["MsgBody"].ToString();
lblDate.Text = sqlreade["MsgDate"].ToString();
lblDepartman.Text = sqlreade["RelatedDept"].ToString();
lblTitle.Text = sqlreade["MsgTitle"].ToString();
ChangeMessageStatus(strID, clsFunction.GetUserGUID(User.Identity.Name));
}
sqlreade.Close();
cnnConnection.Close();

چک کن ببین توی Object هایی که توی کدت هست خاصیتی به نام HasRow دارن؟

parvizwpf
پنج شنبه 02 خرداد 1392, 16:48 عصر
اگه منظورت رو درست فهمیده باشم یعنی میخوای ببینی آیا چیزی تو سلکت هست یا نه؟:متفکر:
اگه آره، تعداد دیتا تیبل رو ببین.

r_s1389@yahoo.com
پنج شنبه 02 خرداد 1392, 22:22 عصر
منظورم اینه که کاربر بیاد شناسه هاش رو از دیتابیس بخونه اگه بود آپدیت و ارسال ایمیل کنه اگه نه بگه کاربری با این نام وجود نداره

r_s1389@yahoo.com
جمعه 03 خرداد 1392, 00:02 صبح
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Mail;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class RecoverPassword : System.Web.UI.Page
{
private string pass;
private string tpass;
private string mail;
private connection con = new connection();
private SmtpClient obj = new SmtpClient();
private MailMessage MailMsg = new MailMessage();

protected void Page_Load(object sender, EventArgs e)
{
string ABC = "QWERTYUIOPLKJHGFDSAZXCVBNM1234567890";
Random rnd = new Random();
object ABC1 = rnd.Next(1, 36);
object ABC2 = rnd.Next(1, 36);
object ABC3 = rnd.Next(1, 36);
object ABC4 = rnd.Next(1, 36);
object ABC5 = rnd.Next(1, 36);
object ABC6 = rnd.Next(1, 36);
string strABC1 = ABC.Substring(Convert.ToInt32(ABC1), 1);
string strABC2 = ABC.Substring(Convert.ToInt32(ABC2), 1);
string strABC3 = ABC.Substring(Convert.ToInt32(ABC3), 1);
string strABC4 = ABC.Substring(Convert.ToInt32(ABC4), 1);
string strABC5 = ABC.Substring(Convert.ToInt32(ABC5), 1);
string strABC6 = ABC.Substring(Convert.ToInt32(ABC6), 1);
string result = strABC1 + strABC2 + strABC3 + strABC4 + strABC5 + strABC6;
if (!IsPostBack)
{
Session.Add("result", result);
//Label4.Text = result;
Bitmap bmp = new Bitmap(Server.MapPath("~/cap-img/Untitled-3.jpg"));
Graphics g = Graphics.FromImage(bmp);
g.DrawString(result.ToString(), new Font("arial", 14, FontStyle.Italic), Brushes.Red, new PointF());
bmp.Save(Server.MapPath("~/cap-img/secuertiyimage.jpg"));
Image11.ImageUrl = "~/cap-img/secuertiyimage.jpg";

}
}

protected void Button3_Click(object sender, EventArgs e)
{

DataTable dt = new DataTable();
string result = (string) Session["result"];
if (TextBox4.Text == result)
{

SqlCommand cmd =new SqlCommand("select pass,tpass,mail from users where mail = @mail or username=@username", con.conect);

cmd.CommandType = CommandType.Text;

cmd.Parameters.AddWithValue("@mail", TextBox3.Text);
cmd.Parameters.AddWithValue("@username", TextBox3.Text);

SqlDataAdapter da = new SqlDataAdapter(cmd);


con.conect.Open();
da.Fill(dt);
con.conect.Close();
try
{


pass = dt.Rows[0]["pass"].ToString().Trim();
tpass = dt.Rows[0]["tpass"].ToString().Trim();
mail = dt.Rows[0]["mail"].ToString().Trim();




Random rand = new Random();
string Passwords = rand.Next().ToString();
pass = Passwords.ToString();
tpass = Passwords.ToString();

SqlCommand cmd1 = new SqlCommand("update users set pass = @pass,tpass=@tpass where username=@username or mail = @mail", con.conect);

cmd1.CommandType = CommandType.Text;

cmd1.Parameters.AddWithValue("@pass", pass.ToString());
cmd1.Parameters.AddWithValue("@tpass", tpass.ToString());
cmd.Parameters.AddWithValue("@mail", TextBox3.Text);
cmd.Parameters.AddWithValue("@username", TextBox3.Text);


con.conect.Open();
cmd1.ExecuteNonQuery();
con.conect.Close();




MailMsg.To.Clear();

MailMsg.To.Add(new MailAddress(mail.ToString()));
MailMsg.From = new MailAddress("ramin.sahandi@yahoo.com");
MailMsg.Subject = " Recoverpassword";
MailMsg.BodyEncoding = System.Text.Encoding.UTF8;
MailMsg.IsBodyHtml = true;
obj.Host = "smtp.mail.yahoo.com";

System.Net.NetworkCredential basicAuthenticaionInfo =
new System.Net.NetworkCredential("ramin.sahandi@yahoo.com", "****************");

obj.UseDefaultCredentials = false;

obj.Credentials = basicAuthenticaionInfo;

MailMsg.Body = "رمز عبور جدید شما '" + pass +
"' توصیه میکنیم در اواین فرصت رمز عبور خود را تغییر دهید";
MailMsg.IsBodyHtml = true;



obj.Send(MailMsg);
lblMsg.Text = "یک ایمیل برای شما فرستاده شد که حاوی رمز عبور جدید میباشد";
TextBox3.Text = "";
TextBox4.Text = "";


}


catch (Exception ex)
{
if (pass == null)
{
lblMsg.Text = "این نام کاربری وجود ندارد یا ایمیل خود را اشتباه وارد کرده اید";
TextBox3.Text = "";
TextBox4.Text = "";
}

}


}
else
{
Label4.Text = "کد امنیتی به درستی وارد نشده است";
}







}
}

در این کد من آپدیت انجام نمیشه مشکل از کجاست دوستان

r_s1389@yahoo.com
جمعه 03 خرداد 1392, 00:08 صبح
لطفا کمک کنید خیلی خیلی واجبه

r_s1389@yahoo.com
جمعه 03 خرداد 1392, 21:08 عصر
گسی نیست به این بدبخت کمک کنه تو کد هام آپدیت تمامی مقادیر رو آپدیت میکنه

r_s1389@yahoo.com
جمعه 03 خرداد 1392, 21:18 عصر
تو رو خدا کمک کنید

mohammad kafiyan
جمعه 03 خرداد 1392, 23:08 عصر
برای این که کاربر یکی از راهها یعنی username ,mail را وارد کنه بهتره که از dropdownlist استفاده کنید و در قسمت


cmd.Parameters.AddWithValue("@mail", TextBox3.Text);
cmd.Parameters.AddWithValue("@username", TextBox3.Text);


با استفاده از if یا switch case یکی ازمقادیر برای شرط update بفرست