اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


  • 0
cloner01001

چند سوال در دیتابیس آنلاین

سوال

سلام دوستان خسته نباشید

شرح نرم افزار:

دوستان نرم افزاری دارم برای تولید محتوا توسط یه تیم کوچک، هرکسی که نرم افزار رو نصب میکنه فرم عضویت براش بالا میاد و user و pass انتخاب میکنه و ثبت نام میشه

قسمت اول: دیتابیس آنلاین

وقتی ثبت نام شد تو دیتابیس چنین چیزی داریم: (4تا باتن تو نرم افزار داریم ، هر کدوم به یکی از sها متصل هست ، وقتی باتن 1 انتخاب بشه، s1=1 میشه و بقیه خالی ، اگه باتن2 انتخاب بشه s2=1 میشه و بقیه باتن ها خالی و...)

id   username  password  s1 s2 s3 s4

سوال1)  اگه user که کاربر تو ادیت تکست فرم عضویت وارد کرد، تو دیتابیس وجود داشت(تکراری انتخاب شد)، نرم افزار ارور بده و بگه که باید username دیگه ای انتخاب کنی/ و اگه وجود نداشت id جدیدی با یوزر و پسورد وارد شده ساخته میشه / با چه کدی میتونم این مقدار رو چک کنم که نزاره username تکراری باشه و ارور بده؟ آیا چیزی شبیه سرچ هست که اگه کلمه سرچ شده وجود داشت نرم افزار ارور بده و اگه نداشت بسازه؟ 

قسمت دوم:

صفحه ورودی طراحی کردم که کاربر username و password رو وارد میکنه:

سوال2) میخوام نرم افزار چک کنه بین کل idها و اگه جایی این user و pass تطابق داشت وارد نرم افزار بشه و در غیر این صورت ارور بده

اماااا... میخوام وقتی وارد شد، نرم افزار بفهمه که کاربر از این به بعد هر تغییری که تو مقدار sها میده، برای همون کاربر(id)ی که لاگین هست ثبت بشه

 

سوال3)راهی وجود داره که این اطلاعات ورود تو نرم افزار سیو باشه؟ و کاربر هربار نیاز به وارد کردن اطلاعات نداشته باشه؟ مثلا وقتی کاربر ثبت نام کرد و وارد شد یه فایل txt تو حافظه ساخته بشه و username و password توش نوشته بشه و وقتی برای بار بعدی وارد نرم افزار شد، نرم افزار چک کنه اگه فایل txt وجود داشت که اطلاعات رو(username و password) از فایل تکست بگیره و بیاره تو قسمت های مربوطه وارد کنه و لاگین شه و کاربر هر تغییری تو ادیت تکست های s داد ، تو نرم افزار ثبت شه... راهی هست؟

سوال4) فرض کنین من ده تا کاربر دارم ، 4تا باتن از 1 تا 4 تو نرم افزار و 4تا sاز 1 تا4 تو دیتابیس و یه تایمر 5 ثانیه ای ،،، 4تا باتن تو نرم افزار داریم ، هر کدوم به یکی از sها متصل هست ، وقتی باتن 1 انتخاب بشه، s1=1 میشه و بقیه خالی ، اگه باتن2 انتخاب بشه s2=1 میشه و بقیه باتن ها خالی و... / میخوام وقتی 5 ثانیه تموم شد تو یه لیبیل جدید بهم نشون بده مقادیر sها چنده ، فرضا s1=5 s2=3 s3=2 s4=0  یعنی 5نقر رو باتن1 زدن و 3نفر رو باتن2 و 2نفر رو باتن3 و 0نفر رو باتن4 ، حالا میخوام تایمر بعد 2 ثانیه از نمایش این لیبیل دوباره بشه 5 و حالا وقتی کاربر باتن جدید انتخاب کرد مقادیر s ویرایش بشه و مقادیر جدید جایگزیم شه و چرخه‌ی فوق تکرارشه... از چه کدی باید استفاده کنم برای این ویرایش و نشون دادن جمع sهای مجموع کاربران(idها)؟ ممنون

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تا کنون داده شده است

  • 1
در در 1397/11/20, 12:57:03، mohammad3250 گفته است :

خب معلومه شما php بلدی ؟ اگه نه بده api های سمت سرور یه php کار برات بزنه. وگرنه 2  ماهی باید مشغول یادگیری php بشی

ببخشید این چند وقت در گیر مراسم عزاداری تو خونمون بودم و همچنین برنامه های راهپیمایی 22 بهمن رفتیم و یه مشت محکم تو دهن همه بدخواهان ایران زدیم و اومدیم.
داداش چرا سختش میکنی کدش رو میگفتی به دوست عزیزمون.
 

 

در در 1397/11/20, 12:21:14، cloner01001 گفته است :

سلام، ممنون

ولی احساس میکنم برای دریافت اینکه کدوم کاربر لاگین کرده نیاز به کدهای php هست ، برای همین مشکل پیدا کردم

ممنون میشم دقیقتر راهنمایی کنین ♥

خب وقتی اطلاعات درست بود کاربر وارد صفحه home میشه و حالا شما میای توی هوم میگی که نام کاربری رو و پسورد رو بفرست به php مثل این:
 

 

در در 1397/11/18, 13:12:46، msd313 گفته است :

 


	Dim ht As HttpJob
	ht.Initialize("ht",Me)
	ht.PostString("http://www.xxxxxxxxx/xxx.php","user="&txtuser.text&"&pass="&txtpass.text)

حالا میای توی php میگی که کاربری که نام کاربریش فلان و رمزش فلانه s1,s2,s3 و s4 رو بهش نشون بده اینم کدش:
 

$user=$_POST['user'];
$pass=$_POST['pass'];
$rest=mysqli_query($con,"SELECT * FROM tbname WHERE username='$user' AND password='$pass'");
$row = mysqli_fetch_array($rest)
echo $row['s1']."#".$row['s2']."#".$row['s3']."#".$row['s4'];

بعد از این میای توی jobdone کد زیر رو مینویسی:
 

dim show() as string
show=Regex.Split("#",ht.getstring)
txt_s1.text=show(0);
txt_s2.text=show(1);
txt_s3.text=show(2);
txt_s4.text=show(3);

موفق باشی.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 1
در در 1397/11/18, 11:22:10، cloner01001 گفته است :

سوال3)راهی وجود داره که این اطلاعات ورود تو نرم افزار سیو باشه؟ و کاربر هربار نیاز به وارد کردن اطلاعات نداشته باشه؟ مثلا وقتی کاربر ثبت نام کرد و وارد شد یه فایل txt تو حافظه ساخته بشه و username و password توش نوشته بشه و وقتی برای بار بعدی وارد نرم افزار شد، نرم افزار چک کنه اگه فایل txt وجود داشت که اطلاعات رو(username و password) از فایل تکست بگیره و بیاره تو قسمت های مربوطه وارد کنه و لاگین شه و کاربر هر تغییری تو ادیت تکست های s داد ، تو نرم افزار ثبت شه... راهی هست؟

بله 3 تا حداقل راه داره 1- استفاده از فایل 2- استفاده از حالت ذخیره خود اندروید معروف به shared preferences و 3-استفاده از دیتابیس آفلاین
من شماره 1 رو توضیح میدم:
شما توی صفحه اول که کاربر نام کاربری و رمز رو میخواد وار کنه چک میکنی که نام کاربری و رمز توی گوشی ذخیره شده یا نه به این شکل:

if File.Exists(File.DirInternal,"user")=False And File.Exists(File.DirInternal,"pass")=False  then
	File.WriteString(File.DirInternal,"user",usertxt.text)
	File.WriteString(File.DirInternal,"pass",passtxt.text)
else
	usertxt.text=File.ReadString(File.DirInternal,"user")
	passtxt.text=File.ReadString(File.DirInternal,"pass")
end if

این کدای بالا یعنی چی اگه کاربر بار اولش باشه که وارد میشه قطعاً if اجرا میشه و نام کربری و رمز ورود رو توی دو فایل با نام های user و pass ذخیره میکنه.
حالا اگه دفعه دومش باشه که وارد میشهاین دو فایل ساخته شده و بخش else اجرا میشه و مقدارهایی که داخل اون دو فایل بود وارد تکست باکس نام کاربری و رمز میشه

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

سلام و خدا قوت

جواب سوال اول)
خب شما 2 تا داده به عنوان نام کاربری و رمز رو میفرستید به سرور به یک فایل php :

این کد بیسیک:
 

	Dim ht As HttpJob
	ht.Initialize("ht",Me)
	ht.PostString("http://www.xxxxxxxxx/xxx.php","user="&txtuser.text&"&pass="&txtpass.text)

اینم کد php:

$user=$_POST['user'];
$pass=$_POST['pass'];
$rest=mysqli_query($con,"SELECT * FROM tbname WHERE username='$user'");
if(mysqli_num_rows($rest)>0)
{
	echo "خطا این نام کاربری موجود میباشد";
}
else
{
	mysqli_query($con,"INSERT INTO tbname (username,password,s1,s2,s3,s4)VALUES('$user','$pass','0','0','0','0')");
}

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

و اما جواب سوال دوم )
کد بیسیک که همون بالایی است.
ولی کد php:

$user=$_POST['user'];
$pass=$_POST['pass'];
$rest=mysqli_query($con,"SELECT * FROM tbname WHERE username='$user' AND password='$pass'");
if(mysqli_num_rows($rest)>0)
{
	echo "1";
}
else
{
	echo "0";
}

اگه نام کاربری و رمز صحیح باشه 1 برمیگردونه و اگه اشتباه باشه 0
و توی بیسیک چک میکنی اگه 1 بود بره داخل برنامه و اگه 0 بود وارد نشه و بگه که اشتباهه

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در در 1397/11/18, 13:47:06، msd313 گفته است :

و اما جواب سوال دوم )
کد بیسیک که همون بالایی است.
ولی کد php:


$user=$_POST['user'];
$pass=$_POST['pass'];
$rest=mysqli_query($con,"SELECT * FROM tbname WHERE username='$user' AND password='$pass'");
if(mysqli_num_rows($rest)>0)
{
	echo "1";
}
else
{
	echo "0";
}

اگه نام کاربری و رمز صحیح باشه 1 برمیگردونه و اگه اشتباه باشه 0
و توی بیسیک چک میکنی اگه 1 بود بره داخل برنامه و اگه 0 بود وارد نشه و بگه که اشتباهه

 

سلام بسیار ممنون از شما واقعا کمک بزرگی بهم کردید ♥ ولی

یه مشکلی دارم ، اینکه الان تو صفحه vorod وقتی کاربر نام کاربری و پسورد رو درست وارد میکنه یه پیام میده که "خوش آمدید" و اگه غلط باشه میگه"اطلاعات غلط است"

من میخوام وقتی درست بود کاربر از صفحه vorod به صفحه جدید(home) منتقل شه ، تو صفحه home سایر اطلاعات ردیف دیتابیس مربوط به خودش رو بتونه ببینه(/s1/s2/s3 و در کل سایر اطلاعات ردیف خودش تو یه ادیت تکست بالا بیاد) و وقتی ویرایش کرد رو باتن ثبت زد ، اطلاعات جدید جایگزین اطلاعات قبلی تو همون ردیف (id) بشه و اطلاعات بقیه کاربرا اسیبی نبینه

در واقع هم بتونه تو صفحه home اطلاعات ردیف خودشو ببینه(sها و...) و هم بتونه sها رو ویرایش کنه و sهای جدید جایگزین قبلی بشن...

چکار باید انجام بدم؟

 
  •  

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

عزیزم شما اول 4 دستور اصلی sql یاد بگیر بعدا هر کاری بخوای میتونی انجام بدی.

برای ورود به صفحه بعد میتونی از اینتنت ها استفاده کنی و یه سری اطلاعاتم بفرستی سرچ بزن کداش هست

خب برای سوال بعدیتون از دستور update همراه با where باید استفاده کنی

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 11 ساعت قبل، mohammad3250 گفته است :

عزیزم شما اول 4 دستور اصلی sql یاد بگیر بعدا هر کاری بخوای میتونی انجام بدی.

برای ورود به صفحه بعد میتونی از اینتنت ها استفاده کنی و یه سری اطلاعاتم بفرستی سرچ بزن کداش هست

خب برای سوال بعدیتون از دستور update همراه با where باید استفاده کنی

سلام، ممنون

ولی احساس میکنم برای دریافت اینکه کدوم کاربر لاگین کرده نیاز به کدهای php هست ، برای همین مشکل پیدا کردم

ممنون میشم دقیقتر راهنمایی کنین ♥

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

خب معلومه شما php بلدی ؟ اگه نه بده api های سمت سرور یه php کار برات بزنه. وگرنه 2  ماهی باید مشغول یادگیری php بشی

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مطالب شما نیاز است به تایید مدیران برسد

مهمان
شما به عنوان کاربر مهمان در حال حاضر دیدگاه ارسال می کنید. اگر دارای حساب کاربری در سایت هستید لطفا وارد حساب کاربری خود شوید.
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.