PDA

View Full Version : سوال: درج نشدن اطلاعات در دیتابیس در صورت شکست در ارسال ایمیل



bftarane
سه شنبه 10 بهمن 1391, 23:17 عصر
سلام.
کاربر که روی دکمه ثبت نام کلیک می کنه براش یه ایمیل فعالسازی فرستاده میشه و همچنین اطلاعاتش در دیتابیس ذخیره میشه.
منتها متوجه شدم وقتی ارسال ایمیل با شکست مواجه میشه ولی اطلاعات در دیتابیس ذخیره میشن
بنابراین نام کاربری و ایمیل در دیتابیس وجود دارن در حالی که فیلد IsActive صفر هست چون ایمیلی به کاربر فرستاده نشده که بخواد روش کلیک کنه و فعال بشه بنابراین وقتی بخواد با همون نام کاربری و ایمیل دوباره ثبت نام کنه اجازه بهش نمی ده
من چطور می تونم اگه ارسال ایمیل با شکست مواجه شد نزارم رکوردی هم در دیتابیس ذخیره بشه؟

aspismylove
سه شنبه 10 بهمن 1391, 23:21 عصر
دستورات ذخیره اطلاعات کاربر رو بعد از ارسال موفقیت آمیز ایمیل بنویس دیگه !!!

شما بعد از اینکه ارسال ایمیل با موفقیت برای کاربر ارسال میشه بهش میگی که : لینک فعالسازی به ایمیل شما ارسال شد ...

اون کد ذخیرتون رو بعد از همون کد ارسال موفقیت آمیز ایمیل بنویسید و در صورتیکه ایمیل با موفقیت ارسال نشد ی پیام هم بده که "خطا در ارسال ایمیل و ثبت اطلاعات ، لطفا مجددا سعی نمایید"

موفق باشید

bftarane
چهارشنبه 11 بهمن 1391, 01:04 صبح
آره ولی داشتم فکر می کردم یه چیزی مثل Transaction در SqlServer شاید وجود داشته باشه که اگه اشکالی در یک قسمت صورت بگیره کلاً قضیه منتفی میشه و بقیه قسمت ها هم انجام نمی شن.

خوب حالا اگه ایمیل اول فرستاده بشه بعد در درج اطلاعات خطایی رخ بده هم اینم مشکل داره به نظرتون اشتباه می کنم؟

اوبالیت به بو
چهارشنبه 11 بهمن 1391, 09:58 صبح
آره ولی داشتم فکر می کردم یه چیزی مثل Transaction در SqlServer شاید وجود داشته باشه که اگه اشکالی در یک قسمت صورت بگیره کلاً قضیه منتفی میشه و بقیه قسمت ها هم انجام نمی شن.

خوب حالا اگه ایمیل اول فرستاده بشه بعد در درج اطلاعات خطایی رخ بده هم اینم مشکل داره به نظرتون اشتباه می کنم؟


درود بر شما

این یک چیز غیر قابل کنترل هست. چون دستور اتومیک برای اینجور مسائل وجود نداره. فقط و فقط در یک سطح این کار رو میشه کرد و اون هم سطح ماشین و زبان اسمبلی هست. شما برای یک کار در وب چندین Application رو همزمان بهشون Task میدید. MailServer, SQL Server, .NET Compiler, IIS و غیره. اینها همشون موازی کار می کنند و در آخر Task می گن: "تمام کردم".

اصلا قابل کنترل نیست.

quantomquery
چهارشنبه 11 بهمن 1391, 15:43 عصر
سلام

بهتره اینطوری بکنید:

بعد از ذخیره نام کاربری و کلمه عبور و فرستادن ایمیل
هربار اگه کاربر خواست لوگین کنه پک کنه ایمیل تایید شد یا نه و اگه تایید نشد فقط با یه پنجره روبرو بشه که توش گزینه فرستادن دوباره ایمیل باشه .

اینطوری مشکلی با وجود داشتن نام کاربری و کلمه عبور تو پایگاه پیش نماد..