PDA

نسخه کامل مشاهده نسخه کامل : عضوگيري و اعتبارسنجي كاربر در Php (بحث كامل)



MATRIX reloaded
24-05-2008, 16:07
تاپيك هايي كه تو اين فروم در رابطه با اين موضوع بحث كردند خيلي بهم ريخته و ناكامل هستند. دلم مي خواد در اين تاپيك بحث registring و ورود به سايت و اعتبار سنجي كاربر به كلي تموم بشه.

MATRIX reloaded
25-05-2008, 01:09
براي شروع:
در كليه كد ها از ديتابيس testDB و از جدول testUSER استفاده مي كنيم.

از كليه دوستاني كه در اين مورد وارد هستند در اين بحث شركت كنند تا هم من و هم دوستاني كه در اين رابطه مشكل دارند بتونند به جواب برسند.

پيشنهاد : بهتره در اعتبار سنجي كلمه عبور از تابع md5() و توابع قوي تر رمزنگاري داده استفاده كنيم.

و همچنين ملاحظات امنيتي جهت مقابله با حملات احتمالي هكر ها هم در كدنويسي در نظر گرفته بشه.

اميدوارم دوستان همراهي كنند.

نكته: اين تاپيك فقط مخصوص php است.

از كساني هم كه آژاكس كار كردند نيز دعوت مي كنم تا اعتبار سنجي و تطبيق نام كاربري را با آژاكس انجام بديم.

براي شروع اسكريپت درجه بندي امنيت پسورد در فرم ثبت نام با تكنولوژي اي جكس:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدپسورد: "[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"

MATRIX reloaded
25-05-2008, 01:17
از دوستان استاد در اين زمينه خواهشمندم تو اين تاپيك شركت كنند تا بتونيم سروته اين بحث رو يه جوري جمع كنيم تا ديگه نياز نشه راجع بهش تاپيك تكراري باز بشه.

از دوستان dogtag - neopersia هم دعوت دارم.

من خودم زياد وارد نيستم يعني هنوز دارم درس مي گيرم. اميدوارم با به پايان رسيدن اين تاپيك من هم بتونم يك سيستم رجيستر و عضو گيري امن براي سايتم راه اندازي كنم. البته دلم مي خواد راجع به [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] و SLL و امنيت پايگاه داده و php هم در رابطه با موضوع تاپيك بحث كنيم.

neopersia
25-05-2008, 04:51
کاش اسم نمیبردی آخه دوستان دیگه ای هم توی انجمن هستن که تو این زمینه کار میکنن اینجوری شاید ناراحت بشن.
البته در کل فکر نمیکنم مطلب خاصی هم توی این زمینه وجود نداشته باشه ولی حالا که شروع کردید منم هستم.
میرم و سریع برمیگردم!

MATRIX reloaded
25-05-2008, 11:05
براي خيلي ها مثل من مهمه كه وب سايتشون داراي سيستم عضوگيري و اعتبار سنجي امن باشه. روي اين موضوع تاكيد دارم .
البته قصد من افراد بخصوصي نبود از همه دعوت دارم. اميدوارم كمكم كنين.
در ضمن از يكي خواهش دارم تا بحث رو شروع كنه.

dogtag
25-05-2008, 12:49
با اجازه همه بچه ها، من اول چند نوع از انواع این سیستم رو (تقریباً شفاهی) می گم، بعد تک تک توضیح خواهیم دادشون.

1- یک سیستم تک کاربر (برای استفاده به در پنل ادمین):
برای این کار می توان تنها یک رمز عبور داشت که به 3 روش (در فایل یا در پایگاه داده یا در اصل کد)، ذخیره شود.
مثال برای فایل:
فایل password.pass دارای محتوای زیر است:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مثال برای پایگاه داده:
مثلاً در جدول testUSER یک فیلد به نام password با محتوای زیر وجود دارد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مثال برای کد:
در فایل اصلی مون به این شکل وجود دارد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

(که البته می توان همه را به صورت md5 شان قرار داد)

در این سیستم می توان به 3 صورت رمز را از کاربر دریافت کرد:
یا به صورت GET :
که باید فایل را به این صورت در براوزر باز کرد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

یا به صورت POST که باید بک فرم در صفحه وجود داشته باشد که در آن فیلدی متنی با نام pass وجود داشته باشد.

یا به صورت HTTP Authentication باشه که با کد زیر میشه پسورد رو دریافت کرد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

به 3 صورت هم می توان از پسورد وارد شده استفاده کرد:
یا می توان با یک شرط (که اگر پسورد وارد شده با پسورد ذخیره شده برابر بود)، کار مطلوب را انجام داد و تمام
یا آن را با یک کوکی ذخیره کرد
یا آن را با یک سشن ذخیره کرد


2- یک سیستم چند کاربر:
برای این روش ذخیره در فایل و کد عملی نیست.
پس می ماند پایگاه داده

برای دریافت، GET هم توصیه نمی شود.
HTTP Authentication هم قیافه سایت را به هم می زند و فقط برای جاهایی با امنیت بالا مناسب است. (اگر امنیت از زیبایی خیلی مهم تر باشد)
پس می ماند POST

برای اسفاده هم عملاً نمی شود از شرط ساده استفاده کرد (می شود اما توصیه نمی شود)
کوکی هم امنیت ندارد
پس می ماند همان سشن


حالا این یک لیست خیلی ساده بود.
اگر هدف کاملاً مشخص باشد، می توان کد کامل را نوشت و روی آن توضیح داد.
با تشکر از MATRIX reloaded برای ایده قشنگشون.

MATRIX reloaded
25-05-2008, 13:15
**منظور شما از HTTP Authentication يعني اعتبار سنجي بوسيله خود مرورگر؟

هدف كاملا مشخصه، البته من بيشتر قصد دارم ياد بگيرم. البته در طي بحث سوال هايي هم خواهم پرسيد كه مدنظر بازديدكنندگان بدون شك خواهد بود.

بالاخره بايد سروته اين تاپيك رو جمع كنيم و بتونيم با كمك شما يك سيستم كاملا امن (عضو گيري - اعتبارسنجي - و تخصيص امكانات به كاربران) در كل يك سيستم membership كامل و بي نقص رو پياده سازي كنيم.

اين تاپيك رو براي اين ايجاد كردم كه بخاطر نداشتن دانش كافي بعضي از طراحان و برنامه نويسان ايراني (افرادي مثل من) وب سايت هاي ايراني داراي امنيت كافي نبوده و نفوذ پذيرند.

البته نمي خوام اين تاپيك به مسائل هك و ... كشيده بشه بلكه هدف فقط راه اندازي سيستم membership تمام و كمال و نفوذ ناپذير (تا حد ممكن) هست.

درر ضمن: بنده از اينترنت هاي عصر هجر استفاده مي كنم (32kbps) البته قصد خريد اينترنت adsl دارم اگه يه موقع حضور من تو تاپيك دير به دير شد منو ببخشيد..
و
از <dog></dog> هم تشكر مي كنم براي شروع خوبش
با تشكر از دوستان

dogtag
25-05-2008, 14:50
**منظور شما از HTTP Authentication يعني اعتبار سنجي بوسيله خود مرورگر؟
بله. دقیقاً

ایشالا بچه ها 1 قدم برن جلو تر، من هم باز میام.
آخه الان نمی دونم باید دقیقاً چی رو توضیح بدم.

MATRIX reloaded
25-05-2008, 15:26
با اجازه من يك مثال خيلي ساده براي قسمت اول پست 6 ميزارم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MATRIX reloaded
25-05-2008, 15:32
يك سوال: آيا توبع قوي تر از md5() براي رمزنگاري وجود دارد؟
يه چيزايي درباره sha1 و sha512 شنيدم. مي شه توضيح بدين؟

dogtag
25-05-2008, 15:43
با تشکر از مثال.


اونها (shaX) هم خوب هسنتد ولی md5 عام تره.
شما 100% بدون که هیچ کس نمی تونه از کد md5 یه مقدار واقعی عبارت برگرده (البته میان مقدار md5 عبارت ها رو همراه با عبارت می ذارن توی 1 دیتابیس که بعداً بشه اونوری اش کرد. اما این کار، چندین سال طول می کشه.)
برای امنیت بیشتر، می تونید چند بار md5 بگیرید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MATRIX reloaded
25-05-2008, 15:51
در كل يعني اگه پسورد ها با الگوريتم md5 كدگذاري بشوند هيچ راه بازگشتي وجود نداره مگر اين كه كلمه عبور را داشته باشي . عمل بازگرداندن كلمه عبور حتي براي مدير سايت كه به كل داده ها و ديتابيس دسترسي داره هم غيرممكن هست؟!

و
چطور مي شه از sha512 در php استفاده كرد؟

dogtag
25-05-2008, 17:54
بله. کاملاً

اون sha1 هم مثلاً در mySQL میشه انجام داد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MATRIX reloaded
26-05-2008, 22:06
نمي خواين بحث رو ادامه بدين؟! كسي نيست!

dogtag
26-05-2008, 22:41
من منتظر دوستان دیگر هستم

MATRIX reloaded
26-05-2008, 23:28
راستشو اگه بخواين نمي خوام پست الكي بدم ولي بدون پست هم تاپيك از صفحه اول خارج مي شه. من خودم منتظر ادامه بحث هستم. <dog></dog> جان خوب شروع كرده بودي ادامه بدي ممنون مي شم.

neopersia
27-05-2008, 02:26
بزارید اول ببینیم کجا هستیم و کجا باید بریم. من یه چیزایی نوشتم چک کنید اگر شرایط دیگه ای هم هست بگید تا من تو همین پست وارد کنم تا طبق اون پیش بریم وگرنه که من قسمت ثبت نام رو نوشتم بزارم توی تاپیک:

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

- برای اینکه اعضای سایت رو بشناسیم اعضا باید ثبت نام کنند.

- اطلاعات مربوط به اعضا که در یک جدول mysql نگهداری خواهند شد:
1. id که به صورت خودکار توسط mysql وارد جدول میشه.
2. نام کاربری که توسط کاربر در فرم ثبت نام وارد میشه.
3. کلمه عبور که توسط کاربر انتخاب شده و با متد md5 هش میشه تا قابل بازیابی نباشه.

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

- اسکرپت ثبت نام که بتونه در صورتی که اطلاعات کاربر قابل قبول بود اونا رو در جدول ثبت کنه.
شرایط ثبت نام رو به این صورت در نظر میگیریم:
1. نام کاربری نباید قبلاً ثبت شده باشه.
2. حداقل تعداد حروف نام کاربری و کلمه عبور باید 4 حرف باشه.
3. حداکثر طول نام کاربری و کلمه عبور باید 20 حرف باشه.

- یک فرم لوگین میخوایم تا اعضا از طریق اون وارد سایت بشن.

- اسکرپت لوگین که نام کاربری رو از صفحه ثبت نام بگیره و با جدول چک کنه و اگر مطابقت داشت اجازه دسترسی به صفحات حفاظت شده رو از طریق ست کردن یک سری session به کاربر بده و کاربر رو به صفحه ای که از اون لوگین کرده ریدایرکت کنه

- صفحات اصلی سایت با استفاده از session اعضای سایت رو تشخیص میدن.

- اسکرپت Logout برای خارج شدن اعضا از سایت.

MATRIX reloaded
27-05-2008, 09:50
ممنون neopersia جان.
ما مي خوايم كاربر از هر صفحه اي كه وارد صفحه لوگين يا ثبت نام مي شه بعد از اتمام مراحل دوباره به صفحه اي كه بوده بصورت لاگين شده ريدايركت بشه.
و يك سوال: اگه بخوايم از [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] براي صفحه ثبت نام و لوگين استفاده كنيم شريط فرق مي كنه؟!

neopersia
27-05-2008, 15:14
من جدول اعضا رو با این ساختار ایجاد کردم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

neopersia
27-05-2008, 15:15
این اسکرپت ثبت نام و فرم مربوط به اون هست که توی یک فایل با نام register.php ذخیره میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

neopersia
27-05-2008, 15:20
چون الان یه کم عجله دارم توضیحات اسکرپت رو نمیتونم بنویسیم
به همین دلیل این پست رو نگه میدارم تا بعداً توضیحات اسکرپت بالا رو توش بنویسم

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

MATRIX reloaded
27-05-2008, 16:05
validate فيلدها اگه سمت مشتري بود خيلي عالي مي شد.
مي تونيم بعد از ثبت نام كاربر رو به صورت لاگين شده داشته باشيم.

dogtag
27-05-2008, 17:25
validate فيلدها اگه سمت مشتري بود خيلي عالي مي شد.
اونجوری کاربر می تونه خیلی راحت اطلاعات اشتباه وارد کنه. مگر این که هم قبل و هم بعد از ارسال، Validate بشن


مي تونيم بعد از ثبت نام كاربر رو به صورت لاگين شده داشته باشيم.
اول باید صفحه لاگین طراحی بشه. بعد بر طبق ساختار اون، خیلی راحت میشه

نمی دونم neopersia جان، اون رو هم تهیه کرده یا نه؟ اگر تهیه نکرده باشه، من می تونم اون رو درست کنم و توضیح بدم.

MATRIX reloaded
27-05-2008, 17:46
مي دونم . با غير فعال كردن جاوااسكريپ مي تونه . منظورم همون هم سمت سرور و هم سمت مشتري بود.

و يك سوال: منظور از استفاده از تابع strlen چيه؟

MATRIX reloaded
27-05-2008, 17:48
در صفحه ثبت نام من از فيلد checkbox استفاده كردم . وقتي به اون value مي ديم هنگامي كه تيك زديم value رو مي فرسته ولي اگه تيك نزنيم چي؟ هيچي نمي فرسته؟

من فقط بلدم با استفاده از if وقتي خالي باشه يه چيز ديگه جايگزين كنم . شما راه حلي دارين؟

سوال:‌ چرا در value فيلدهاي text از <?php echo UnEscape($_POST['name']); ?> استفاده مي كنيم. حتما لازمه؟

dogtag
27-05-2008, 18:29
منظور از استفاده از تابع strlen چيه؟
این تابع، طول مقدار یک متغیر را نشان می دهد
یعنی برای این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می نویسه 2 و برای این:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می نویسه 5

فکر کنم خالی می فرسته. یعنی یه همچین چیزی (فکر کنم) :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


من فقط بلدم با استفاده از if وقتي خالي باشه يه چيز ديگه جايگزين كنم . شما راه حلي دارين؟
توابع دیگری هم داریم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بررسی می کنه که آیا این متغیر خالی هست یا نه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بررسی می کنه که آیا این متغیر نال هست یا نه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بررسی می کنه که آیا همچین متغیری تعریف شده یا نه

چند تا is_... دیگه هم داریم که مثلاً می بینه که عدد هست یا نه یا مثلاً رشته هست یا نه و ...


چرا در value فيلدهاي text از <?php echo UnEscape($_POST['name']); ?> استفاده مي كنيم. حتما لازمه؟
حتماً لازمه
چون جلوی حملات sql injection رو می گیره
اگر مثال خواستی بگو ولی بدون که لازمه
به غیر از حملات sql injection باعث میشه که کاربر بتونه توی متنش ' و " رو وارد کنه
در غیر این صورت ممکنه ارور بده

MATRIX reloaded
27-05-2008, 19:41
استفاده از اين كد براي امنيت صفحه ثبت نام و فرم هايي كه به ديتابيس متصل مي شوند كافيه؟

dogtag
27-05-2008, 20:24
آره تقریباً
ولی بعداً اگر قرار شد که پرینت بشه، باید کدهای مخرب html ش رو هم حذف کنیم

MATRIX reloaded
27-05-2008, 21:55
يعني چي اگه پرينت بشه؟ - كدهاي مخرب چيا هستن؟

dogtag
27-05-2008, 22:39
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کد مخرب مثلاً دستوری که کوکی هات رو بخونه و برای یه سایتی بفرسته
در کل کدهای html و اسکریپت ها

neopersia
27-05-2008, 22:52
validate فيلدها اگه سمت مشتري بود خيلي عالي مي شد.
ولیدیشن سمت کاربر کاری نداره چار تا خط جاوا اسکرپته که باید به فرم اضافه بشه ولی به این بخش تالار مربوط نمیشد برای همین استفاده نکردم.


در صفحه ثبت نام من از فيلد checkbox استفاده كردم . وقتي به اون value مي ديم هنگامي كه تيك زديم value رو مي فرسته ولي اگه تيك نزنيم چي؟ هيچي نمي فرسته؟
وقتی چک باکس چک نخورده باشه هیچی به سرور فرستاده نمیشه نه مقدار و نه اسم فیلد درست مثل زمانی که فیلد disabled باشه.

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

منظور مسیح از کدهای مخرب کدهای HTML هست که ممکنه کاربر بتونه با استفاده از اونا چیزایی رو توی صفحه ثبت کنه که مشکل ساز بشه اسم دقیقشو نمیدونم
چون من بنا رو بر این گذاشتم که نام کاربری افراد جایی نمایش داده نمیشه اونا به معادل html شون تبدیل نکردم. تو این حالت اگر طرف بیاد یک تگ اسکرپت رو به عنوان نام کاربریش به کار ببره میتونه اسکرپت خودشو توی سایت اجرا کنه. چاره این هم استفاده از توابعی مثل htmlspecialchars هست که کاراکترهای مورد استفاده توی تگهای html رو به معادل اونها تبدیل میکنه. مثلاً < رو تبدیل میکنه به &lt;.
البته اگر قرار باشه نام کاربری توی سایت نمایش داده بشه بهتره این تبدیل همون موقع ثبت نام انجام بشه تا دیگه هربار کار تبدیلو روی دوش سرور نندازیم.

در مورد بقیه مسائل هم که مسیح جان توضیح داد.


نمی دونم neopersia جان، اون رو هم تهیه کرده یا نه؟ اگر تهیه نکرده باشه، من می تونم اون رو درست کنم و توضیح بدم.
مسیح جان دلیل اینکه من اومدم کل اسکرپت رو خورد کردم این بود که بقیه هم بتونن تو نوشتنش همکاری کنند مخصوصاً شما که این روزا توی بخش داینامیک داری به سوالات بقیه دوستان رسیدگی میکنی
من فقط یه توضیح در مورد اون تابع UnEscape دارم که توی همون پست رزرو شدم مینویسمش. فکر میکنم اگه تو بقیه اسکرپت هم از این تابع استفاده بشه یکپارچگی کار بیشتر میشه.

MATRIX reloaded
27-05-2008, 23:22
واقعا به فكرم نيفتاده بود كه ممكنه كد اسكريپت رو وارد ديتابيس كنند . چطوري مي شه حلش كرد؟ اگه بشه رو همون كد قبلي اعمل كنيد. ممنون مي شم.

neopersia
27-05-2008, 23:58
اعمال شد :)

MATRIX reloaded
28-05-2008, 00:53
thanx بابا ، تا اينجاش منم فرم ثبت ناممو تموم كردم. عالي شد.

neopersia
28-05-2008, 01:12
الان که داشتم صفحات قبلی رو مرور میکردم اینو دیدم:

چرا در value فيلدهاي text از <?php echo UnEscape($_POST['name']); ?> استفاده مي كنيم. حتما لازمه؟

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

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

MATRIX reloaded
28-05-2008, 01:18
به يه مشكل برخوردم:
من از querystring استفاده مي كنم مثلا ?lng=fa
وقتي كه طرف ثبت نام مي كنه صفحه برمي گرده بهindex.php در حالي كه بايد index.php?lng=fa باشه
يعني من فرم رو به آدرس index.php?lng=fa مي فرستم

MATRIX reloaded
28-05-2008, 01:35
يك هكر چطوري مي تونه با تزريق query به ديتابيس نفوذ كنه؟( نمي خوام تاپيك منحرف بشه ولي براي امنيت فرم ثبت نام لازمه)
من تو يكي از فيلدهاي ثبت نام mybb كاراكتر ,' را امتحان كردم error داد و مسير خطا رو مشخص كرد فكر كنم اين خودش يه bug مي تونه باشه . ؟

neopersia
28-05-2008, 01:38
اینو بزار برای اکشن فرم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این رو هم بزار به جای تابع هدر قبلی:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته اگه صبر کنی کار این اسکرپت تموم بشه احتمالا این مشکل خود بخود حل میشه

MATRIX reloaded
28-05-2008, 01:44
حل شد thanx

MATRIX reloaded
28-05-2008, 01:55
به نظر شما فرم ثبت نام ما تكميل شده؟
ديگه فكر نكنم مشكل امنيتي و اينا داشته باشيم!

MATRIX reloaded
28-05-2008, 22:16
نمي خواين ادامه بدين؟! من منتظرم.

MATRIX reloaded
29-05-2008, 13:29
بهتر نيست به جاي

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداز

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداستفاده كنيم.


كسي نبود؟؟؟

neopersia
29-05-2008, 18:54
بهتر نيست به جاي

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداز

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداستفاده كنيم.


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

ولی شما تو این فرم در نظر بگیر یه نفر بیاد اول یا آخر نام کاربریش اسپیس وارد کنه حالا اگه ما این اسپیسها رو بدون اینکه به کاربربگیم برداریم خوب بعداً کاربر نمیتونه با نام کاربری خودش وارد سایت بشه!

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

MATRIX reloaded
29-05-2008, 20:00
فكر كنم فرم ثبت نام كامل شد.
از دوستان خواهش مي كنم فرم ورود رو هم بزارن.

I am wistful

aida_bax
30-05-2008, 00:22
ببخشيد
من دانشجوي برقم قراره با چند تا از دوستان يه وب سايت كوچولو واسه پروژه هامون به سايت اصلي دانشگاه متصل كنيم. زياد با طراحي وب كار نكردم ولي تا حدودي ميتونم يه كارايي رو بكنم . مي خواستم وب سايتمون داراي سيستم عضوگيري هم باشه خيلي به php علاقه مند شديم قرار شد با php بنويسيم.
من هم اين تاپيك رو دنبال مي كنم. تو انجمن گشتم چيز زياد بدرد بخوري پيدا نكردم. فكر كنم اين تاپيك مناسب باشه.
ممنون مي شم كمكم كنين

dogtag
30-05-2008, 00:55
aida_bax جان به P30World خوش آمدید
neopersia جان نگفتند که من اجازه دارم صفحه login رو درست کنم یا نه.
اینجوری هم بی ادبیه که سر خود کار کنم و ممکنه که ایشون ایده هایی داشته باشند که من نداشته باشم.

aida_bax
30-05-2008, 01:46
باشه،‌من منظر مي مونم.
من از كد ثبت نام استفاده كردم . جواب داد حالا بايد منتظر كد login و... باشم.

MATRIX reloaded
30-05-2008, 01:52
با سلام دوباره
<dog></dog> جان اگه بشه شما ادامه بدين. بازم از نئوپرشيا ممنونم و دلم مي خواد از اطلاعات مفيد ايشون هم استفاده اي ببريم. حالا فرقي نداره . مثل اينكه مشتاقان تاپيك هم زياد مي شه.

تا فردا

neopersia
30-05-2008, 04:20
آره مسیح جان من یه کم مشکل پیدا کردم (دوباره ویروسه برگشت نمیدونم از کجا باید منشاشو پیدا کنم)
اگه شما ادامه بدی ممنون میشم انشاالله منم زود بر میگردم

aida_bax
30-05-2008, 21:26
اره . خواهشا زودتر dogtag ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) جان من منتظرم. خواهشا ادامه بديد.
من دوباره 1 ساعت ديگه برمي گردم.......

dogtag
30-05-2008, 21:50
بفرمایید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سعی کردم که کپی neopersia باشه!
من ترجیح دادم که 2 تا سشن ثبت بشه که توی یکی اش یوزر نیم و توی یکی اش پسورد باشه

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

اگر دوستان نظر اصلاحی دارند، بدند

منتظرم

MATRIX reloaded
30-05-2008, 23:01
نمي دونم ولي فكر كنم به جاي

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بايد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مي شد. نمي دونم بازم شما چك كنيد شايدم من اشتباه كردم
كد شما درسته ولي نمي دونم چرا كار نمي كنه . وقتي submit رو مي زني صفحه سفيد مياد

dogtag
31-05-2008, 09:09
فرمایش کاملاً درست
دیدم نیازه تو همین پاسخ سریع، برنامه رو نوشتم. تستش هم نکردم
شرمنده
ولی نباید سفید بده

aida_bax
01-06-2008, 14:19
ببخشيد نمي شه مشكل كد رو حل كنيد؟

dogtag
01-06-2008, 14:22
مگه مشکلش حل نشد؟
الان اشکالش کجاست؟

MATRIX reloaded
01-06-2008, 14:53
آره منم مشكل دارم .
نمي شه شما يه لطفي كنيد و كد رو تست كنيد. خيال ما رو هم راحت كنيد؟

مشكل از

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نباشه؟

به نظر من مشكل از query مي تونه باشه. سفيد مي ده!

dogtag
01-06-2008, 15:03
شرمنده
قول می دم دفعه بعد حتماً از یه ادیتور استفاده کنم
کد رو درست کردم

MATRIX reloaded
01-06-2008, 15:09
بازم مشكل داريم

dogtag
01-06-2008, 15:32
با کجاش مشکل دارید؟؟

MATRIX reloaded
01-06-2008, 15:47
ببينيد من كد رو امتحان كردم. وقتي username و password رو وارد مي كنم و submit رو مي زنم صفحه سفيد مي ده بدون error و هيچ كد html
من با اينجاش مشكل دارم.

dogtag
01-06-2008, 15:49
اشتباه نمی کنی؟
اگر درست وارد کرده باشی می ره به صفحه index.php و اگر اشتباه وارد کرده باشی ارور میده

MATRIX reloaded
01-06-2008, 15:52
نه اشتباه وارد نكردم. خود صفحه login كه login.php است رو بعد زدن submit سفيد مي ده.

MATRIX reloaded
01-06-2008, 15:53
نه درست وارد كردم. وقتي submit رو ميزنم خود صفحه لاگين كه مثلا login.php باشه صفحه سفيد مي ده

dogtag
01-06-2008, 15:55
میرن اون ویندوز و تست می کنم
بعداً به محسن خان می گم که این پست های الکی رو پاک کنه که انسجامش به هم نریزه

MATRIX reloaded
01-06-2008, 16:01
البته بعد از اينكه تاپيك بسته شد.
اي كاش اين امكان رو به كاربران مي دادن تا بتونن پست هاي خودشونو حذف كنن.

aida_bax
01-06-2008, 16:04
ببخشيد ها ولي نمي شه به جاي اين تاپيك هاي الكي پشت سر هم تاپيك را به يه جايي برسونيد. تورو خدا اين مشكل login را حل كنيد. من اميدم به شماست.

dogtag
01-06-2008, 16:21
اشکالی نداشت
فقط یه کم تغییر ایجاد کردم که جلوی warning ها رو بگیره

MATRIX reloaded
01-06-2008, 17:03
من كدي رو كه بكار بردم مي زارم چك كن ببين مشكل داره: (صفحاتي كه include ميشن مشكلي ندارن)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شايد مشكل از كد منه كه سفيد مي ده.

MATRIX reloaded
01-06-2008, 18:18
ايرادو وللش، يه كاريش مي كنم.
بهتره بحثو ادامه بديم.

dogtag
01-06-2008, 18:21
دیگه چی رو بگیم؟
البته امیدوارم neopersia بیاد و ادامه بده که باز از این سوتی ها ندم!

MATRIX reloaded
01-06-2008, 19:01
مثلا مي خوايم يك سري امكانات به كاربران وارد شده بديم. يا يك سري از صفحات يا بخش هايي از سايت فقط براي كاربران وارد شده در دسترس باشند.

MATRIX reloaded
04-06-2008, 22:14
آقا تو رو خدا كمكم كنين. من با يه شركت قرارداد بستم قرار شد 10 ، 15 روزه كار registering سايت رو تحويل بدم. كمكم كنين ، من فقط تونستم صفحه ثبت نام كاربر رو درست كنم و با كد login داگتگ هم مشكل دارم صفحه سفيد مي ده.
من فقط مي خوام وقتي كاربر لاگين شد اسمش و بالاي صفحه داشته باشم . بعد از لاگين شدن بتونه وارد يكسري از صفحات بشه كه اگه لاگين نشه نتونه يا اجازه ورود نداشته باشه.

خواهشا كمكم كنيد كارم خيلي گيره.

كسي نبود...........
نمي دونم امروز تو فروم چه خبره هيشكي پيداش نيست. انگاري همه امروز تعطيل كردن. شانس مارو ببين

MAXXX
04-06-2008, 23:20
عجب بابا نمیدونم چرا تا پستت رو دیدم خندم گرفت آخه چطور کارو دادن به شما
راستش من برنامه نویس نیستم برا همین زیاد اینورا پست نمیزنم ولی حالا چون کارت گیره و کسی نیست یه چیزایی میگم
شما بایداز سیژن استفاده کنی وقتی کاربر لوگین میکنه سیژنش رو true قرار بده
حالا تویه هر صفحه خط اولش سیژن کاربرا رو چک کن اگه true بودن اجازه بده صفحه رو ببینن اگر هم نه هدر کن به یه صفحه اررور

MATRIX reloaded
04-06-2008, 23:29
ببينيد من php رو يك ماهه شروع كردم . و طراحي وب سايت رو 6 ماهه.
تويه 5 ماهه گذشته با سمت سرور كاري نداشتم فقط با جاوااسكريپت و style و html و تم و كلا سمت مشتري كار كردم.

الان هم مي خوام با php سيستم عضوگيري رو راه اندازي كنم.
حالا اونا هم يه قلطي كردن به من كار دادن .


و در ضمن مي دونم بايد از سيژن استفاده كنم. بهتره تاپيك رو از اول بخوني تا بفهمي مشكل من چيه . اگه تونستي كمكم كن.

بازم خواستي بخندي بخند مشكلي نيست

MAXXX
04-06-2008, 23:38
ببخشید منظورم خنده اونطوری نبود ببخشید اگه ناراحت شدی سوتفاهم شد
اما در مورد قسمت دوم باید بگم که شما یه سوال تو پست 72 کردی منم جواب دادم نمیشه که 8 صفحه رو از اول بخونم برایه یه سوال نمیشه همینجا بگب مشکلش چیه

MATRIX reloaded
04-06-2008, 23:45
ببينيد اين سورس كد منه

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نمي دونم مشكلش چيه در ظاهر كه مشكلي نداره ولي وقتي submit رو مي زني صفحه سفيد مي ده سينتاكس هاي query رو هم غلط مي نويسي حتي error هم نمي ده.
صفحات include شده هيچ مشكلي ندارن.

نبود؟:45:
مثل اينكه دير وقته!:9:

MAXXX
05-06-2008, 00:38
ببین من یکم دستکاریش کردم تا لوکال خودم تست کنم اینکلوداتو غیر فعال کردم و به دیتابیس خودم وصلش کردم شرطش رو هم عوض کردم تغییرام مشخصن بالاشون نوشتم الان برایه من کار میکنه بازم ببخشید پریدم وسط همونطور که گفتم طراح نیستم دیدم کارت لنگه گفتم یه چیزی بگم فکر نکنین لالم :46::31:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MATRIX reloaded
05-06-2008, 01:09
بابا ايول دمت گرم.
گل مايي
عالي بود كار كرد .



مثلا براي سيژن چجوري timeout قرار بم. اينجوري كه كاربر تا ابد لاگين مي مونه. مشكل امنيتي هم داه. مثلا اگه 10 دقيقه كاربر غير فعال بود سيژن پاك بشه. و دوباره درخواست لاگين كنه.

چجوري لاگ آوت كنم؟

MAXXX
05-06-2008, 01:21
ببین تو صفحه ای که صحت رمز ورودی رو چک میکنه (همین که صفحه قبل دستکاریش کردم ) اگه نام کاربری و اینچیزاش درست بود یه سیژن اینطوری تعریف کن

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که درصورت true نبودن اون سیژن کاربر رو به یه صفحه دیگه منتقل میکنه

MATRIX reloaded
05-06-2008, 01:25
چجوري لاگ آوت كنم؟
چجوري براي سيژن چجوري timeout قرار بم. اينجوري كه كاربر تا ابد لاگين مي مونه. مشكل امنيتي هم داه. مثلا اگه 10 دقيقه كاربر غير فعال بود سيژن پاك بشه. و دوباره درخواست لاگين كنه.

MAXXX
05-06-2008, 01:36
ببخشید این کارت اینترنت من شبا رایگانه یه بار که دیسی کردم باید نیم ساعت صبر کنم تا کانکت بشم
سیژن وقتی که کاربر مرورگرش رو میبنده از بین میره و نمیخاد زیاد نگرانش باشی


سیژن رو میشه با دستور

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداز بین برد
از ایندستور برایه لوگ آوت کردن استفاده کن یه دکمه بزار که این دستور رو انجام بده یا به یه صفحه هدرکن کاربرو میتونی با هایپر لینک هم این کارو بکنی که توش این دستور باشه بعد که سیژن ها رو نابود کردی دوباره کاربرو برگردون به همون صفحه اصلی
البته این دستور تمامی سیژن ها رو از بین میبره اگه سیژن خاصی مد نظرته باید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداستفاده کنی
اما اگه میخوای بعد از زمان معینی سیژن از بین بره من تا حالا استفاده نکردم ولی به صورت تئوری میدونم که
تابع
session_cache_expire
مربوط به این کاره که با یه سرچ کوچیک تو گوگل میتونی طرز استفادشو پیدا کنی

MATRIX reloaded
05-06-2008, 01:42
خيلي ممنون كمك بزرگي بهم كردي.

MAXXX
05-06-2008, 01:54
خواهش میکنم من تا حدود 4 بیدارم دارم چشامو رو یه پروژه درسی هدر میدم !!! تا اساتید بیان سوالی داشتی من در خدمتم
این سایت اوایل خیلی به من کمک کرد یه سری بهش بزنی بد نیست هر دستور ی رو با یه مثال نشون داده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

dogtag
05-06-2008, 19:08
من نمی دونم کد دوست عزیزمون Maxxx با مال من چه فرقی داره
نمی دونم چرا برای شما سفید می شد

در کل، ببخشید

neopersia
05-06-2008, 21:39
من کد شما رو امتحان نکردم ولی فکر میکنم دوستان با session مشکل دارن
احتمالاً ساختار فایل اسکرپت یه جوریه که قبل از سشن هدرها رو ارسال میکنه و نتیجه میشه یه صفحه سفید

ahmadi81
08-06-2008, 07:35
سلام.

من این کدهارو امتحان کردم و جواب داد .

ولی فرمی که من میخوام کامل تر باشه (مشخصات کاربر سوال بشه) فرمش نوشتم کارهم میکنه ولی نتونستم توی جدول my sql بزارمش میتونم ادامه همون جدولی که ایجاد شده برای یوزرنم و پسورد ادامه بدم یا نه؟؟؟؟

dogtag
08-06-2008, 16:00
بله می تونی

gipsi
11-06-2008, 06:39
سلام.لطفا اگه مي شه همين بحث عضو گيري رو با c# هم بذاريد

David.Jn
11-06-2008, 10:59
سلام
خیلی تاپیک با حالی شده فکر کنم خیلی از مشکلات تازه کارا رو مثل منو حل کنه

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

1-فیلد id را هنگام ساخت بانک برای چی تعریف کردید ولی به کار نبردید(شاید برای لیست گیری از کاربران استفاده کردید یا ...؟)
ضمنآ این فیلد باید به طور اتومات پر بشه درسته؟

2-تابع UnEscape برای چی استفاده میشه ؟درسته که neopersia همون جا توضیح دادن ولی من این تابع را نگذاشتم ولی هیچ بک اسلشی همراه اطلاعات ورودی در درون بانک وارد نمیشه. اگه میشه یه توضیح هم در این مورد بدین.

3-escape کردن اطاعات کاربر چیه(در کل میخوام بدونم این تابع چی کار میکنه) در ضمن htmlentities چکار میکنه؟

dogtag
11-06-2008, 23:43
1-فیلد id را هنگام ساخت بانک برای چی تعریف کردید ولی به کار نبردید(شاید برای لیست گیری از کاربران استفاده کردید یا ...؟)
ضمنآ این فیلد باید به طور اتومات پر بشه درسته؟
هر جدولی باید (100% نه ولی تقریباً شما باید حسابش کن) یه Primary Key داشته باشه که کار شناسایی سریع تر انجام بشه و داده ها هم conflict نداشته باشند
شاید بعداً هم از همین id توی سایت استفاده کردیم. مثلاً برای دیدن پروفایل طرف.


2-تابع UnEscape برای چی استفاده میشه ؟درسته که neopersia همون جا توضیح دادن ولی من این تابع را نگذاشتم ولی هیچ بک اسلشی همراه اطلاعات ورودی در درون بانک وارد نمیشه. اگه میشه یه توضیح هم در این مورد بدین.
فک کنم تو ویندوز اینجوریه
آخه معمولاً برای من هم از این چیز ها نمیاد ولی وقتی آپلود می کنم میاد. (چقدر غیر حرفه ای حرف زدم :اسفند)


3-escape کردن اطاعات کاربر چیه(در کل میخوام بدونم این تابع چی کار میکنه) در ضمن htmlentitiesچکار میکنه؟
escape هر جایی یه معنی میگیره
یه جا میشه بی اثر کردن ' و "
یه جا میشه بی اثر کردن کد های html. یه جا جاوا اسکریپت و ...
در کل برای این اسکیپ می کنیم که کاربر یه سطح از ما پایین تر باشه و نتونه با کد های ورودی، برنامه ی ما رو دستکاری کنه

و اما htmlentities:
همه ی کاراکتر هایی که باعث بوجود آمدن کد های html می شند رو طوری تغییر میده که فقط دیده بشند ولی عملی نکنند
مثلاً <br> باعث میشه که یه خط جدید به صفحه Html مون اضافه بشه اما اگر htmlentities کنیمش، تبدیل میشه به:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که نتیجه اش موقع اجرا، نوشته شدن عبارت <br> روی صفحه است بدون اینکه به خط بعد بره

خوب گفتم؟

neopersia
12-06-2008, 00:18
این توضیحات مربوط به تابع UnEscape هست باید ببخشید زودتر فرصت نکردم بنویسم:

Magic Quotes کارش اسکیپ کردن اطلاعاتی هست که وارد اسکرپت php میشه. مثلاً اطلاعاتی که از طریق فرم به اسکرپت ارسال میشه.
این مجیک کوت توی تنظیمات php شامل سه تا دایرکتیو میشه که همشون به صورت خاموش یا روشن هستن.

1- magic_quotes_gpc
این دایرکتو در صورتی که مقدار on داشته باشه باعث میشه php همه اطلاعاتی رو که با متد GET و POST و همینطور کوکی به صفحه ارسال میشه اسکیپ کنه یعنی قبل از کاراکترهای سینگل کوت (') دابل کوت (") و بک اسلش (\) یه دونه بک اسلش اضافه میکنه تا اون کاراکترها دیگه خاصیت اجرایی نداشته باشن.

2- magic_quotes_runtime
این دایرکتیو اگر on باشه با عث میشه تا کوتیشنهای داده هایی که از منابع خارجی به جز بالا وارد اسکرپت میشه هم اسکیپ بشه. مثلاً اطلاعات گرفته شده از دیتابیس یا فایلهای متنی.

3- magic_quotes_sybase
کار این دایرکتوی هم شبیه دو تای قبلی هست ولی متد اسکیپ کردنش فرق میکنه

کمتر پیش میاد که توی یک سرور معمولی دایرکتیو های 2 و 3 رو روشن کنن. اونی که ما بیشتر از همه باهاش کار داریم magic_quotes_gpc هست.
تابع get_magic_quotes_gpc میاد مقدار تنظیم شده برای دایرکتیو magic_quotes_gpc رو به صورت بولی یعنی true یا false بر میگردونه
پس ما میتونیم از این تابع برای اینکه بفهمیم داده های ارسال شده به اسکرپت به صورت خام هستن یا اینکه اسکیپ شدن استفاده کنیم

دیگه فکر میکنم تابعی که با نام UnEscape توی کدهای قبلی داشتیم نیاز به توضیح زیادی نداشته باشه
ما اسکرپتمونو با این فرض نوشتیم که داده ها به صورت خام به اسکرپت ارسال شده تا بتونیم برای خنثی کردنشون از تابع mysql_real_escape_string استفاده کنیم.
حالا اگر داده ها به صورت خام نباشه و اسکیپ شده باشه تابع mysql_real_escape_string فقط بک اسلشهای اضافه شده به داده ها رو اسکیپ میکنه و ریسک ارسال کوئری خطرناک به دیتابیس به وجود میاد.
برای اینکه از این خطر جلوگیری کنیم توی تابع UnEscape میایم چک میکنیم اگه مجیک کوت داده های ما رو اسکیپ کرده باشه با استفاده از تابع stripslashes داده ها رو به صورت خام در میاریم و اگر داده ها اسکیپ نیشده باشه اونا رو به حال خودشون رها میکنیم.

اگه بد توضیح دارم ببخشید دیگه چیزی به ذهنم نمیرسه

MATRIX reloaded
12-06-2008, 12:03
نه؛ توضیحات شما خیلی کامل و مفید بود. استفاده کردیم.

در ضمن باید بگم به کمک شما تونستم یه سیستم registering و اعتبار سنجی واسه سایتم بذارم. که از همه دوستان که کمک کردم ممنونم.



من نمی دونم کد دوست عزیزمون Maxxx با مال من چه فرقی داره
نمی دونم چرا برای شما سفید می شد


البته دلیلشو که نمی دونم ولی اینجور اتفاقا واسه من خیلی افتاده . مثلا تا÷یکی که در باره ext library ایجاد کرده بودم! حالا فهمیدم که اشکال از ویندوزم بوده و خرابی ویندوزم باعث بوجود آمدن خیلی از خرابی ها بوده. شاید باور نکنین ولی مشکل من فقط مربوط به ویندوز درپیتی به نام microsoft windows XP sp2 بود.

MATRIX reloaded
12-06-2008, 13:12
من یه سوال دیگه داشتم:
ما می خوایم به هنگام ورود از کاربر سوال کنیم که آیا می خواهد سایت دفعه بعد بدون لاگین او را بخطر بیاورد. برای این کار باید کوکی نوشت؟
چیارو باید تو کوکی ذخیره کرد؟
کلمه عبور هش شده و نام کاربری؟
می شه با کد کمکم کنین.

Ultimator
12-06-2008, 19:17
سلام.لطفا اگه مي شه همين بحث عضو گيري رو با c# هم بذاريد
با اجازه دوستان سروران اساتید و همکاران محترم برای جلو گیری از همچین مسائلی عنوان تاپیک رو کمی ویرایش کردم
اگه باز هم مناسب نبود یاسر جان خودت ردیفش کن [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

MATRIX reloaded
12-06-2008, 21:05
تیتر که همونه

Ultimator
12-06-2008, 21:12
طوری عوض کردم که شما نفهمی !!!
از عضوگيري و اعتبارسنجي كاربر(بحث كامل)
به
عضوگيري و اعتبارسنجي كاربر در Php (بحث كامل)

MATRIX reloaded
12-06-2008, 21:13
گرفتم چی شد

Ali_vavan2009
26-07-2008, 16:54
دوستان اگه امکان داره سیستم کامل رو تو یه جا آپبود کنید تا ما راحت ازش استفاده کنیم

MATRIX reloaded
26-07-2008, 20:33
فکر کنم اگه این تاپیکو از اول بخونی می تونی یه سیستم عضو گیری کامل درست کنی و جلوی تنبلی مفرط رو می گیره!

aroosak_kooki
31-07-2008, 05:40
سلام به همه ي دوستان
من رشته ام نرم افزاره و تا حدودي با php كار كردم يه كم هم asp بلدم البته نه حرفه اي
خيلي وقته با php كار نكردم و بعضي چيز هاش يادم رفته ... تاپيك خيلي عالي زديد

اميدوارم كه وجود اين تاپيك باعث بشه من دوباره برم سراغ php و بتونم به دوستانم در حل مشكلاتشون كمك كنم و حتي اگر خودم مشكلي داشتم با وجود اساتيد بزرگي كه اينجا هستند بتونم برطرفشون كنم...

همگي خسته نباشيد

dogtag
31-07-2008, 16:24
خوبه که این تاپیک تونسته به شما کمک بکنه.
امیدوارم Php تون قوی بشه و همین جا مشکل سایرین رو حل کنید.

موفق باشید.

aroosak_kooki
02-08-2008, 02:27
ممنونم... من هم اميدوارم:20:

البته هر چقدر هم كه ياد بگيريم باز به پاي استاداني مثل شما نميرسيم...

aminkarami
04-08-2008, 06:49
سلام منم با اجازه دوستان کد ورود رو یه تغییر دادم و براش یه دکمه ی خروج نوشتم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MATRIX reloaded
04-08-2008, 11:51
فکر نمی کنی این کد ایراد داره:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پیشنهاد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

havash
18-07-2016, 03:25
سلام دوستان عزیز . فکر کنین بعد از چند سال این ارسالی رو دوباره از زیر خاک کشیدم بیرون :n01:

قبل از هر چیزی باید یک تشکر درست و حسابی بکنم از دوستان بخاطر این آموزش . تا اینجا خیلی به دردم خورد . تونستم یک فرم ثبت نام درست و حسابی برای سایتم بنویسم .

ممنون می شم توی چند مورد من رو راهنمایی کنین .

1- توی قسمت ثبت نام نام نمایشی کاربر رو هم اضاف کردم اما زمانی که توی دیتا بیس ذخیره می کنه کاراکتر ها به هم ریخته میاد . من یونی کد هشت فارسی رو انتخاب کردم : utf8_persian_ci
هم ابتدا که جدول رو ساختم و هم جداگانه برای خونه هایی که فارسی نیاز داشت . اما متاسفانه کاراکتر ها به هم ریخته ذخیره میشه .

2- در ارتباط با مورد اول توی کد نویسی قسمت اسکیپ کردن داده ها این کد رو داشتیم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سوالم اینه که الان توی این کد ENT_QUOTES, 'UTF-8 دقیقا چه عملی رو انجام می ده ؟ من یک بار بدون این قسمت ( مثل قسمت پسورد تست کردمش یک بار هم به شکل همین کدی که اینجا قرار دادم تستش کردم . هر دو بار هم کاراکترها به هم ریخته ذخیره شد .


3- توی فرم خودم می خوام یک مالتی لاین داشته باشم تا کاربر بتونه توضیحی رو بنویسه . بتونه از اینتر و خط بعد استفاده کنه . کدوم نوع رو به خونه ی جدولم بدم که این خاصیت رو داشته باشه ؟ تا توی خروجی بتونم پیام رو به همون شکل و با همون تعداد اینتری که ارسال شده به نمایش در بیاد ؟

4- این تاپیک گمونم شروع خوبی بود . اگه ادامش بدیم می تونیم به شکل کامل یک وبسایت نمونه بسازیم تا افرادی که می خوان یاد بگیرن بتونن با یک مثال عملی بزرگ جلو برن .

5- می خوام توی وبسایتم کاربرها تنها برای ویرایش اطلاعات خودشون مثل نام نمایشی و ایمیل لوگین کنن . با کمک گرفتن از آی دی و چه دستوری برای چک کردن و چه دستوری برای آپدیت کردن می تونم این قسمت از برنامم رو بنویسم ؟ اگه بتونین یک مثال کوچیک بزنین ممنون می شم .


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


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