آموزش ساخت يك سيستم وبلاگ دهي - قسمت اول 1 , 2 بازديد ها:
1288 , پاسخ ها:
19 در اين آموزش قصد دارم در چند مرحله نحوه ساخت يك سيستم وبلاگ دهي رو توضيح بدم.دقت كنيد كه پروژه در رده مقدماتي – متوسط و پيشرفته هست!در واقع از سطح مقدماتي شروع مي كنيم و به بالاتر پيش ميريم.موارد و نكات امنيتي رو در حين كد نويسي ها سعي مي كنم توضيح بدم اما به خاطر اينكه پروژه پيچيده نشه به نكات ابتدايي اكتفا مي كنيم.
توجه كنيد كه اين يك سيستم وبلاگ دهي واقعي نيست(به دليلي سادگي زياد!)!بلكه فقط يك پروژه عملي هست براي افزايش توانمندي مخاطب در برنامه نويسي هست.در واقع ميشه اسمش رو mini blogger بذاريم :d
ملزومات: آشنايي مقدماتي با php و mysql
ابتدا يك ديتابيس جديد ميسازيم:
کد: انتخاب همه CREATE DATABASE `blogdehi` ; ساخت جداول : 1. جدول اعضاکد: انتخاب همه CREATE TABLE `blogdehi`.`users` ( `id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `user` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `password` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ciدستورات اس كيو ال رو توضيح نمي دم و پيش فرض رو بر اين ميذارم كه با اين دستورات آشنا هستيد.اگر كسي با دستورات مشكل داشت مي تونه از php my admin كمك بگيره
به ازاي هر عضو در سيستم ما قرار هست يك ركورد به جدول اضافه بشه.
هر كاربر داراي يك شناسه (id) از نوع عدد صحيح (int) هست كه بايد منحصر به فرد باشه و براي همين اون رو از AUTO_INCREMENT و PRIMARY KEY تعريف كردم.اين كار باعث ميشه در ارتباط بين جداول،جتسجو و جلوگيري از افزونگي داده ها كمك شاياني بشه.
اطلاعات بيشتر:
http://en.wikipedia.org/wiki/Unique_key http://en.wikipedia.org/wiki/Primary_key نام كاربري،رمز عبور،پست الكترونيك و نام كاربر رو هم از نوع رشته (varchar) در نظر گرفتم.
جدول وبلاگ ها:
مي تونستيم همون نام كاربري رو به عنوان نام وبلاگ هم در نظر بگيريم ، اما فرض كنيم مثل برخي سيستم هاي وبلاگ دهي ميخواهيم كاري كنيم كه يك كاربر بتونه چند وبلاگ داشته باشه..البته براي اينكه آموزش پيچيده نشه و بخش مديريت پيچيده تري هم نداشته باشيم فعلا پيش فرض رو بر يك وبلاگ مي ذاريم.
اين جدولمون بايد شامل ، شناسه وبلاگ،شناسه صاحب وبلاگ،آدرس وبلاگ،عنوان وبلاگ،توضيحات وبلاگ،كلمات كليدي وبلاگ باشد.
کد: انتخاب همه CREATE TABLE `blogdehi`.`blogs` ( `blogid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `uid` INT( 5 ) NOT NULL , `blog` VARCHAR( 255 ) NOT NULL , `title` INT( 255 ) NOT NULL , `description` TEXT NOT NULL , `keys` VARCHAR( 255 ) NOT NULL ) ENGINE = InnoDB CHARACTER SET ucs2 COLLATE ucs2_general_ciخب اين جدول هم مثل جدول قبل هست و توضيح خاصي نياز نداره...
جدول قالب ها :
هر وبلاگ داراي يك قالب منحصر به فرد هست كه به صورت پيش فرض نمايش داده ميشه و تعدادي قالب پيش فرض كه كاربر مي تونه يكي رو براي وبلاگش انتخاب كنه.
بنابراين جدولي داراي چنين مشخصاتي مي سازيم:
شناسه قالب : شناسه عددي منحصر به فرد براي قالب
شناسه وبلاگ صاحب قالب،
وضعيت قالب : يك عدد كه نشون مي ده قالب فعلي قالب پيش فرض ما هست،يا قالبي هست كه مي تونه توسط بازديد كننده انتخاب بشه (مثل كمبو باكس تغيير قالب در پايين بعضي انجمن ها)، يا يك قالب هست كه در آرشيو نگه داري ميشه.
كد قالب : كه شامل كد HTML و Javascript تگ گذاري شده قالب هست.
کد: انتخاب همه CREATE TABLE `blogdehi`.`template` ( `tmpid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `blogid` INT( 5 ) NOT NULL , `active` INT( 1 ) NOT NULL , `code` TEXT NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ciجدول مطالب :
شامل شناسه مطلب،شناسه وبلاگ صاحب مطلب،شناسه نويسنده مطلب،عنوان مطلب،شناسه موضوع مطلب،تاريخ مطلب،متن مطلب،متن ادامه مطلب مي باشد.
کد: انتخاب همه CREATE TABLE `blogdehi`.`data` ( `postid` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `uid` INT( 5 ) NOT NULL , `blogid` INT( 5 ) NOT NULL , `title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `fulltext` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `cat` INT( 5 ) NOT NULL , `date` TIMESTAMP NOT NULL ) ENGINE = InnoDBجدول موضوعات وبلاگ ها:
شامل شناسه موضوع،شناسه وبلاگ صاحب موضوع،عنوان موضوع مي باشد.
کد: انتخاب همه CREATE TABLE `blogdehi`.`cat` ( `catid` INT( 5 ) NOT NULL , `blogid` INT( 5 ) NOT NULL , `title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ) ENGINE = InnoDBجداول ديگري هم مثل جدول مديريت، لينك ها و ... هست كه اگر در حين توضيح پروژه فرصتي براي گسترشش داشتم به پروژه اضافه مي كنم.تا الان هم جزييات زياد اضافي رو وارد برنامه كردم فقط به خاطر اينكه جذاب تر بشه!وگرنه پيچيده گي كار رو بالاتر مي بره.
اميدوارم جدول لازمي از قلم نيوفتاده باشه و اگه افتاده باشه بعدا اضافه مي كنم.
فعلا خودم خسته شدم! و براي اينكه آموزش هم خسته كننده نشه شروع كد نويسي رو به جلسات بعدي موكول مي كنم.
نكته مورد اهميت اين پروژه اينه كه قصد دارم در اين پروژه از به كارگيري HTML در كدهاي PHP خودداري كنم.برنامه رو شي گرا نمي نويسم تا ساده تر باشه اما به تعدادي function كاربردي تبديلش مي كنم.
سپاس
[ تبليغات ] سیستم دامنه رایگان این سیستم به شما این امکان را می دهد که به کاربران وب، دامنه رایگان ارایه دهید. در واقع کاربران بوسیله این سیستم می توانند برای وب سایت ها... آقا من خیلی خوشحال هستم که اولین کسی هستم که دارم به این حرکت شما تبریک می گم.
می خوام اینو بگم که من شدیداً پیگیری این آموزشتون رو می کنم چون که از اینجور آموزش ها خیلی خوشم میاد و می دونم که سطح علمی آدم رو می تونه خیلی بالاتر ببره
ساخت دیتا بیس رو فکر می کنم همه بلد باشن فقط می خواد دستورات فوق رو توی پایگاه دادمون ایمپورت کنیم.
لطفاً مرحله بعدی رو زودتر بزارید که خیلی مشتاق هستیم.
پس در انتظار مراحل بعد می نشینیم...
سلام رضا جان
مرسي از اين كه شروع كردي
من اومدم به اين ترتيب براي ساخت ساده تر جداول مرتبوشون كردم كه دستي نباشه
کد: انتخاب همه <?php $con=mysql_connect("localhost","root","")or die(mysql_error()); mysql_select_db("blogdehi",$con) or die(mysql_error()); ## User Table mysql_query(" CREATE TABLE `users` ( `id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `user` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `password` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci"); ## Blog Table mysql_query("CREATE TABLE `blogs` ( `blogid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `uid` INT( 5 ) NOT NULL , `blog` VARCHAR( 255 ) NOT NULL , `title` INT( 255 ) NOT NULL , `description` TEXT NOT NULL , `keys` VARCHAR( 255 ) NOT NULL ) ENGINE = InnoDB CHARACTER SET ucs2 COLLATE ucs2_general_ci"); ## Template Table mysql_query("CREATE TABLE `template` ( `tmpid` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `blogid` INT( 5 ) NOT NULL , `active` INT( 1 ) NOT NULL , `code` TEXT NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci"); ## Post Table mysql_query("CREATE TABLE `data` ( `postid` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `uid` INT( 5 ) NOT NULL , `blogid` INT( 5 ) NOT NULL , `title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `text` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `fulltext` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `cat` INT( 5 ) NOT NULL , `date` TIMESTAMP NOT NULL ) ENGINE = InnoDB"); ## Blog Category mysql_query("CREATE TABLE `cat` ( `catid` INT( 5 ) NOT NULL , `blogid` INT( 5 ) NOT NULL , `title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ) ENGINE = InnoDB"); mysql_close($con); ?>فقط چند تا مشكل سوال داشتم شما قبل از اسم جدول اسم ديتابيس رو هم گذاشته بودي و با يك نقطه از هم جداشون كرده بودي
جدوال ساخته ميشد
ولي من حذفشون هم كردم هم مشكلي نداشت
چند تا اسكريپت هم بررسي كردم اينجوري نبودن
ميشه كمي برام توضيح بدين ؟
سلام
آموزش دوم رو تصويري تر(!) تا نصفه و با توضيح كامل تر نوشتم كه انشالله بخش دوم تا شب تموم ميشه.
--
مرسي جواد جان،لطف كردي.
من از phpmyadmin خروجي گرفتم.
الان كه شما تو php يه ديتابيس رو انتخاب مي كني و php مي فهمه از اين به بعد بايد دستورات رو براي كدوم جدولمون اعمال كنه اما در يكجا مثلا phpmyadmin قبل از انتخاب يك جدول اگه يك query بزني از كجا بايد بفهمه جدول رو به كدوم ديتابيس حذف/اضافه يا ... كنه؟بنابراين جدول رو هم مشخص مي كنه.
سلام
آقا تشکر بابت آموزشی که شروع کردید
وقتی موضوع تاپیک رو دیدم پر از هیجان شدم
به صورت ساعتی چک میکنم ببینم قسمت بعدی اومد یا نه
من سره سیستم خبری کلاه رفت سرم
این دفعه دیگه نمیخام اونطوری شه
باز هم تشکر میکنم
سلام رضا جان
خوشحالم که با این کارت باعث میشی هم انجمن فعال بشه و هم خیلی از بچه های تازه وارد علاقه مند به برنامه نویسی بشند
دوستان شاید به جرت بگم اقا رضا شاهرخیان باعث شدن من یک برنامه نویس نیمه حرفه ای بشم
و برای خودم یک منبع درآمدی کسب کنم
ممنونم از لطفت رضا جان امیدوارم همیشه تو زندگی موفق باشید
رضا جان منتظر قسمت بعديم ها !
البته نگي دركت نميكنيم ميدونيم كار داري ولي منم مثل بقيه بچه ها هر بار سر ميزنم تا ببينم اين آموزش چي شد
سلام به همگي و. ممنون
mortezaa نوشته: سلام رضا جان خوشحالم که با اين کارت باعث ميشي هم انجمن فعال بشه و هم خيلي از بچه هاي تازه وارد علاقه مند به برنامه نويسي بشند دوستان شايد به جرت بگم اقا رضا شاهرخيان باعث شدن من يک برنامه نويس نيمه حرفه اي بشم و براي خودم يک منبع درآمدي کسب کنم ممنونم از لطفت رضا جان اميدوارم هميشه تو زندگي موفق باشيد
مرتضي جان خيلي لطف داري...ولي مطمئنا بيشترين كسي كه باعث پيشرفتت شده خودت بودي نه من،تو جريان اين آموزش ها هم خودم از همه بيشتر سود كردم!هم خيلي معلوماتم افزايش پيدا كرد و هم اينكه دوستان خيلي خوبي پيدا كردم
texas نوشته: رضا جان منتظر قسمت بعديم ها ! البته نگي دركت نميكنيم ميدونيم كار داري ولي منم مثل بقيه بچه ها هر بار سر ميزنم تا ببينم اين آموزش چي شد
از اين كه بد قولي مي كنم معذرت ميخوام،باور كن ديشب تا صبح پاي سيستم داشتم كد مي نوشتم..چند پروژه دارم اسيدي داره اذيتم مي كنه!چشم قسمت بعدي رو زودتر آماده مي كنم.
webm_67 نوشته: ببينيد هنوز آموزش تکميل نشده رفتن به اسم خودشون منتشرش کردن:
http://www.webhostingtalk.ir/f148/%D8 %A ... %8A-12983/
خدايي اين ديگه آخرشه ها عجب آدم هايي پيدا مي شن..........
از اين موارد زياد ديدم!تو پروژه راش هم خيلي ها به اسم خودشون فروختند ولي اصلا مهم نيست...البته اين بار رو اشتباه كردي
چون اون كاربر اون انجمن آشناست
چرا اين نقل قول به اسم من شده بود در جواب رضا چان D:
خطاب به مدير رايت كليك : جون من اين فروم رو درستش كن بخش شكلكها و اديتور كار نميكنه
يا تبديلش كن به يك سيستم ديگه مثل ماي بي بي اون بهتره
texas نوشته: چرا اين نقل قول به اسم من شده بود در جواب رضا چان D:
خطاب به مدير رايت كليك : جون من اين فروم رو درستش كن بخش شكلكها و اديتور كار نميكنه
يا تبديلش كن به يك سيستم ديگه مثل ماي بي بي اون بهتره
ويرايش شد
سلام آقا رضا
آقا خسته نباشید.
میگم که چشممون با این بلوک سمت راسته هااااااااااااااا
این همه جوون رو دریاب که همه تو کف قسمت دوم هستن
با تشکر
ببخشيد دير شد.
امشب با قسمت جديد ميام
سلام
دوستان دیشب فرشته رایت کلیک بهم وحی کرد که هر روز بیام اینجا تاپیک رو بروز کنم که آقا رضا بیاد سر بزنه.
منو ببخشین
دستوره دیگه
منم انجام میدم
ديشب آموزش رو نوشتم ولي واقعا به دلم نبود،اونطوري كه ميخواست نبود،ديدم يكجورايي پيچوندن ـه!تصميم گرفتم يك شب ديگه طولش بدم ولي در عوض يك مطلب با ارزش بذارم
1 , 2