ورود

View Full Version : سوال: پیشنهاد یوزر نیم غیر تکراری به کاربر هنگام ثبت نام



faranakk
پنج شنبه 18 آذر 1395, 11:24 صبح
با سلام خدمت برنامه نویسان عزیز
من توی برنامه ای که دارم میخوام کاربر یه یوزر نیم برای خودش انتخاب کنه ، حالا اگه این یوزر نیم قبلا توسط کس دیگه ای استفاده شده بهش پیام بدم و پیشنهاد هایی بهش بدم که ازشون استفاده کنه
این برنامه من تماما با web api نوشته شده و تمام کاربران من با موبایل توی سایت ثبت نام میکنن ، روند این شکلیه که کاربر شماره موبایل رو میفرسته و من شماره رو ذخیره میکنم و در قسمت بعد ازش میخوام که نام و نام خانوادگی و نام کاربری خودش رو ارسال کنه ، اینجا میخوام چک کنم که این نام کاربری تکراری نباشه و اگر تکراری بود بهش پیشنهاد نام کاربری های جدید بدم ،
ایا ابزاری برای این کار وجود داره ؟
ممنون میشم راهنمایی کنید یا اگه کد اماده ای در این زمینه دارین بفرستید
با تشکر

Moien Tajik
پنج شنبه 18 آذر 1395, 13:28 عصر
در مورد جلوگیری از ثبت نام کاربر با Username تکراری ، با یه Select ساده قبل از ثبت نام کاربر میتونید چک کنید که اون Username در دیتابیس وجود داره یا نه : http://www.tugberkugurlu.com/archive/check-instantly-if-username-exists-asp-net-mvc-remote-validation

برای پیشنهاد Username هم میتونید اون Username که کاربر وارد کرده رو بگیرید + یک GUID با رقم های کمتر بکنید و پیشنهاد بدید بهش ( حتما چک کنید که Username پیشنهادی هم داخل دیتابیس وجود نداشته باشه چون GUID رو محدود و کوتاه کردید و ممکنه دیگه Unique نباشه ) .

hakim22
پنج شنبه 18 آذر 1395, 18:25 عصر
خب چرا از همون شماره ی موبایل برای ثبت نام استفاده نمیکنید ؟

faranakk
شنبه 20 آذر 1395, 09:00 صبح
ممنون دوستان که پاسخ دادند
بخش اول که چک کنم تکراری نباشه و ... رو انجام داده بودم و فقط خواستم روند رو گفته باشم
نام کاربری رو میخوام یه چیز با مفهوم باشه ، این پروژه که من روش کار میکنم واسه تیم های فوتبال هست و در مرحله اول کاربر میگه که طرفدار کدوم تیم هستش و در مرحله بعد میاد نام کاربری و .... رو ارسال میکنه ، الان میشه مثلا به ته اسمش یه عدد اضافه کرد یا اسم تیمش رو ته اسمش زد یا ... ولی وقتی تعداد زیاد میشه هم این حالت ها از بین میره و هم سربار زیادی داره، ضمن اینکه از شماره موبایل نمیشه استفاده کرد چون این کاربر رو بقیه میبینن و نمیخوام شماره موبایلش رو در اختیار دیگران قرار برم ، میخوام بدونم سایت های بزرگ چطوری از این حالت استفاده میکنن
بازم ممنون از دوستان

Moien Tajik
شنبه 20 آذر 1395, 10:10 صبح
سایت هایی مثل Gmail رو اگر دقت کرده باشید ، در درجه اول اگر اون Username که خودمون بهش میدیم موجود نباشه ، به اون Username تاریخ تولد رو اضافه میکنه .


الان میشه مثلا به ته اسمش یه عدد اضافه کرد یا اسم تیمش رو ته اسمش زد یا ... ولی وقتی تعداد زیاد میشه هم این حالت ها از بین میره و هم سربار زیادی داره

منظورتون از زیاد رو نفهمیدم که تعداد کاربران رو میگید یا تعداد حروف Username . اگر منظورتون تعداد حروف هست ، میتونید if بزارید و چک کنید که Length اون Username چقدر هست و مثلا اگر 5 رقم بود ، Username رو + نام تیم ( یا مخفف نام تیم ) کنید و اگر بیشتر بود از 5 رقم بود + یه عدد کنید یا ...

milan2004
یک شنبه 21 آذر 1395, 15:21 عصر
سلام
ریموت ولیدیشن remotevalidation فک کنم کارت رو راه بندازه

sara_t
دوشنبه 22 آذر 1395, 21:03 عصر
سلام دوستان من این روشی رو که گفتین انجام دادم.
اما ثبت کاربر غیرفعال میشه و اگر هم کاربر نکراری وارد کنم اروری رو نشون نمیده.میشه بگین کجا استباهد کردم:
این کد usermetadata:

[Required(ErrorMessage = "ایمیل خود را وارد کنید")]
[Display(Name = "ایمیل (نام کاربری)")]
[DisplayName("ایمیل (نام کاربری)")]
[RegularExpression(@"^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,4})$", ErrorMessage = "ایمیل را بدرستی وارد کنید")]
[StringLength(50, ErrorMessage = "این فیلد باید حداکثر 50 کاراکتر باشد")]
[Remote("doesUserNameExist", "Home", ErrorMessage = "User name already exists. Please enter a different user name.")]


public string Email { get; set; }


واینم تابع واقع در home:


public JsonResult doesUserNameExist(string Email)
{
UserRepository blUser = new UserRepository();


var user = blUser.Select().Where(p => p.Email == Email);


return Json(user == null);
}

faranakk
دوشنبه 06 دی 1395, 10:10 صبح
سلام
ریموت ولیدیشن remotevalidation فک کنم کارت رو راه بندازه


ممنون دوست عزیز
این که شما فرمودید برای اینکه تکراری وارد نشه هستش
من میخوام بعد از اینکه به کاربر گفتیم که تکراری هستش بهش پیشنهاد بدم

Moien Tajik
دوشنبه 06 دی 1395, 17:12 عصر
https://msdn.microsoft.com/en-us/library/gg508808(vs.98).aspx

milan2004
سه شنبه 07 دی 1395, 14:03 عصر
خواهش میکنم
درجه اول بجای عبارت منظم از [DataType(DataType.EmailAddress)] استفاده کنید
پیشنهاداتتون رو با فرمت json ارسال کنید و با jquery نمایش بدید ببینید میشه