توضیحات

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

 مقاله در مورد رای گیری الکترونیکی دارای 72 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

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

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد رای گیری الکترونیکی،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن مقاله در مورد رای گیری الکترونیکی :

پروژه رای گیری الکترونیکی

مقدمه
تار جهان گستر (Word Wide Web) دنیای عجیبی است که تکنولوژی های مربوط به آن ، اغلب بدون پشتیبانی کافی ، عرضه می شوند و کاربران این تکنولوژی ها ، همه روزه با واژگان جدیدی برخورد می کنند که باعث سر درگمی آنها می شوند.

برای نمونه می توان به رشد برنامه های Open Source اشاره کرد ( برنامه هائی که می توان آنها را گسترش داد و یا تغییراتی در ساختار آنها ایجاد نمود) متداول ترین این برنامه ها ، سیستم عامل یونیکس و به طور خاص لینکوس می باشد . این برنامه ها با وجود پایداری ، دارای یک مشکل بزرگ می باشند و آن دشوار بودن آموختن این برنامه ها می باشد. کمبود راهنمائی هایی که به زبان ساده ، این برنامه ها را به مبتدیان آموزش دهد . باعث شده است که این دسته از نرم افزارها از جایگاه واقعی خود دور نگاه داشته شوند. Php یکی از زبانهای اسکریپتی Open Source ، ابزاری مفید می باشد که تاکنون علی رغم سادگی استفاده از آن هنوز به طور شایسته از آن استقبا

ل نشده است.

Php چیست :
پی اچ پی که در ابتدای سال 1994 توسط Rasmus Lerdorf ایجاد شد ، مخفف واژگان Personal Home Page به حساب می آمد.
با گسترش قابلیتها و موارد استفاده از این زبان Php در معنای Hypertext Preprocessor به کار گرفته
می شود. این بدان معنا است که پی اچ پی ، اطللاعات را قبل از تبدیل به زمان html پردازش می کند. مطابق سایت وب رسمی پی اچ پی که در آدرس www.php.net قرار دارد ، پی اچ پی یک زبان اسکریپتی سمت سرویس دهنده می باشد.
سمت سرویس دهنده بودن به این معنا است که تمام پردازشهای این زبان بر روی سرویس دهنده (سرور) انجام می گیرد. یک سرویس دهنده در حقیقت یک کامپیوتر مخصوص می باشد که صفحات وب در آنجا نگهداری
می شوند .
این زبان بر روی هر سیستم عاملی قابل اجرا است. منظور از این سیستم عاملهایی می باشد که برروی سرویس دهنده نصب می شوند. پی اچ پی نه تنها قابلیت اجرا بر روی هر سیستم عاملی را می باشد، بلکه برای منتقل کردن برنامه های که از آن یک سیستم عامل به سیستم عامل دیگر ، احتیاج به تغییرات اندکی خواهید داشت و حتی در بعضی از موارد ، بدون احتیاج به هیچ تغییری می توانید ، یک برنامه را با زبان پی اچ پی از یک سیستم عامل به سیستم عامل دیگر منتقل کنید.
پی اچ پی برخلاف زبانهای برنامه نویسی (Programming Languages) یک زبان اسکریپتی

(Scripting Languages) می باشد . به عبارت دیگر دستورات پی اچ پی بعد از رخداد یک رویداد (event) اجرا می شوند. این رویدادها می توانند شامل ارسال یک فرم ، رفتن به یک url مشخص و یا موارد دیگر باشد. متداولترین زبان اسکریپتی زبان جاوا اسکریپت می باشد که معولا برای پاسخ به رویدادهای کاربر در مرورگر وب ، به کار می رود. تفاوت عمده جاوااسکریپت و پی اچ پی دراین است که جاوا یک تکنولوژی سمت سرویس گیرنده است . زبانهائی مانند جاوا و پی اچ پی تف

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

به چه دلیل از Php استفاده می کنیم؟
پی اچ پی در مقایسه با تکنولوژی های مشابه ، سریعتر و بهتر و آسانتر است . از جمله تکنولوژی های مشابه برای طراحی یک سایت وب می توان به این موارد اشاره کرد
اسکریپت هایInterface Common Gatway که معمولا به زبان Perl نوشته می شوند ، ASP(Active Server Page ) و JSP (Java Server Page) جاوا اسکریپت یک گزینه جایگزین برای پی اچ پی در نظر گرفته نمی شوند. زیرا بر خلاف پی اچ پی ، یک تکنولوژی سمت سرویس گیرنده است و همانند تکنولوژهایی مانند CGT و PHP، نمی تواند یک صفحه HTML را تولید کند.
مزیتی که چی اچ پی در مقابل html دارد این است که html یک سیستم محدود به حساب می آید و توانائی ایجاد ارتباط متقابل با کاربر را ندارد . کاربران هنگامی که با یک صفحه html مواجه می شوند ، تنها یک صفحه ساده را روبروی خود مشاهده می کنند که توانائی ایجاد واکنش به اعمال کاربر را ندارد. اما با استفاده از پی اچ پی ،
شما می توانید صفحاتی را ایجاد کنید که برای مثال عناصر موجود در صفحه براساس سیستم عامل کاربر و یا تاریخ مشاهده صفحه ، تنظیم شوند. همچنین پی اچ پی می تواند با فایل ها یا پایگاههای داده (Database) ارتباط برقرار کند و بسیاری عملیات دیگر که html قادر به انجام آنها نمی باشد.
طراحان صفحات وب از مدتها پیش به این نتیجه رسیدند که اگر در صفحات خود ، فقط از کدهای html استفاده کنند ، باید به طور مرتب آنرا تغییر دهند و اطلاعات آنرا به روز کنند . به همین علت تکنولوژهائی مانند CGI از همان آغاز ، طرفداران بسیاری پیدا کردند. این تکنولوژی ها به طراحان این امکان را می دهد که برنامه هایی ایجاد کنند که به صورت داینامیک ، صفحات وب را تولید کنند. همچنین در هنگام ارتباط با یک پایگاه داده بدون دخالت هر انسانی ، صفحات به روز آوری شوند.
به عنوان آخرین مطلب در مورد برتریهای پی اچ پی تنها به ذکر این مطلب بسنده که هم اکنون نزدیک به سه میلیون از سایتهای وب از تکنولوژی پی اچ پی استفاده می کنند.

چکیده از پروژه :
سیستم وجود فایلSalman.php را تست خواهد کرد و در صورت وجود آن را باز خواهد ک

رد و در غیر اینصورت برنامه متوقف میشود اینکار توسط در فایل class.php ،تابع CheckFileConfig انجام میشود.
برنامه به بانک اطلاعاتی وصل خواهد شد ودرصورت وجود خطا برنامه متوقف میشود وبه شما خطا خواهد داد، همین طور برای انتخاب بانک اطلاعاتی این کار توسط تابع connect در فایل class.php انجام می شود.
در اینجا فایل farsi.php باز خواهد شد و زبان را اجرا می کند و در صورتی که در برنامه م

تنی مانند متن خود پیدا کند آن را جایگزین خواهد کرد.
در صورت بر نخوردن به هیچ خطایی برنامه login.php را اجرا می کند و کاربر با کلیک بر رویه register می تواند ثبت نام کند و در صورت کلیک بر رویه login وارد بخش مورد نظر شود
در صورتی که کاربر بر رویه register کلیک کند می تواند ثبت نام شود ، در صورتی که نام کاربری که وارد که در بانک اطلاعاتی وجود داشته باشد برنامه به کاربر خطا می دهد و اطلاعات کاربر به بانک نخواهد رفت
در صورت ورود Password و یکسان نبودن دو فیلد با هم کاربر خطا میدهد و اطلاعات وارد بانک نمی شود
در صورت درست بودن اطلاعات ، تمامی اطلاعات به بانک اطلاعاتی خواهد رفت و صفحه login.php اجرا می شود و کاربر می تواند وارد سیستم شود اگر سطح دسترسی 1 باشد یک سره به بخش مدیریت خواهد رفت و در صورت سطح دسترسی 0 به قسمت رای گیری خواهد رفت
در صورت بودن اطلاعات غلط برنامه وارد نمی شود و به کاربر خطا می دهد
مدیر می تواند کاندید اضافه کند ، پاک کند ، تعداد رای به هر کاندید را ببیند ، و آن را ویرایش کند
در صورت وارد نکردن فیلد “نام کاندید ” به مدیر اخطار داده می شود و اطلاعات ثبت نمی شود
در صورت کلیک بر روی خروج ، از برنامه خارج خواهد شد و دیگر تا با وارد کردن بار دیگر اطلاعات نمی تواند وارد برنامه شود

در صورتی که اطلاعات وارد شده با سطح دسترسی 0 باشد کاربر وارد بخش رای گیری می شود

با انتخاب کاندید مورد نظر و زدن کلیک Submit رای به بانک می رود ، همین طور Ip و یک Cookie ایجاد می شود تا از رای دوباره جلو گیری شود.
در قسمت نمایش آرا کاربر می تواند تعداد رای به هر کاندید را مشاهده کند در صد رأی هر کاندید به صورت عددی و گرافیکی
Login

رأی

User: ————————–

Passwords: ——————
تایید مشخصات رای دهنده
Select

جستجوی کاندیدای مورد نظر و اضافه کردن یکی به آراء وی

تأیید یوزر و پسورد

پیغام خطاء

1- نمایش و ویراش و حدف کاندیدا
2- اضافه نمودن کاندیدای جدید
3- مشاهده نتایج آرا تاکنون

نام کاندیدا حذف نمایش آراء ویرایش

نام کاندیدا حذف نمایش آراء ویرایش
نام کاندیدا حذف نمایش آراء ویرایش
کاندیدای جدید
Insert
مشاهده ارائ کلی نامزدها تاکنون

============================================
PHP Code: salman

<
$config_userDB
$config_passDB
$config_database
>

config_userDB $= نام کاربری که شما برای دیتابیس خود ایجاد کرده اید.
config_passDB$ = پسورد که شما برای نام کاربری تعیین کرده اید.
config_database $ = نام دیتابیسی که ایجاد کرده اید.
===================================================================================

كلاسها (Classes)
یك كلاس تعریف یا نمای یك نوع خاص داده است و كلاسها به عنوان روشی برای حالت دادن به تمام انواع تفاوت اشیاء و سیستم شما عمل می‌كنند . هنگامی كه می‌خواهیم یك شیء جدید را تعریف كنیم ، ابتدا از كلمه كلیدی class برای تعریف آن ، پیش از استفاده از آن در اسكریپت‌های PHP خود استفاده می‌كنیم . تفاوت واضح یك كلاس و یك شیء این است كه كلاس‌ها اشیایی را تعریف می‌كنند كه در برنامه‌هایمان به كار می‌بریم . پیش از آن كه درباره روش ساخت یك كلاس صحبت كنیم ، می‌خواهیم شروع به تأمل كنید كه یك كلاس نمایشی از یك ایده است . مهم است كه هنگامی كه كلاس‌های خودتان را طراحی می‌كنید . آنها یك هدف را دنبال كنند و تمامی رفتاری را كه از آن ایده انتظار می‌رفت را فراهم كنند .
یك كلاس در PHP حاوی سه كامپوننت اصلی است : members (اعضاء) كه به آنها به عنوان داده یا صفت اشاره می‌شود) متدها ، و Constructor یك عضو members تكه‌ای از داده است كه شیء در بر دارد . اشیاء می‌توانند هر تعداد عضو داشته باشند . برای

مثال ، اگر قرار باشد اتومبیل را با استفاده از یك كلاس طراحی كنیم ، یك چرخ در حال دوران یا گیربكس باید به عنوان یك عضو از ماشین تعریف شوند . متدها سرویس‌هایی هستند كه شیء برای سرویس گیرنده‌هایش فراهم می‌كند كه از اعضا داخلی آن استفاده می‌كنند و آنها را دستكاری می‌كنند . برای مثال ، اگر قرار باشد اتومبیل را با اس

تفاده از یك كلاس طراحی كنیم ، یك چرخ در حال دوران یا گیربكس باید به عنوان یك عضو از ماشین تعریف شوند .
متدها سرویس‌هایی هستند كه شیء برای سرویس گیرنده‌ه

ایش فراهم می‌كند كه از اعضا داخلی آن استفاده می‌كنند و آنها را دستكاری می‌كنند . برای مثال ، یك كلاس car می‌تواند یك متد را برای روشن كردن وسیله نقلیه و استفاده از چرخ در حال دوران در داخل آن فراهم كند .
یك Constructor متد خاصی است كه شیء را درون وضعیت آماده آ معرفی می‌:ند . تنها یك Constructor برای یك شیء در PHP می‌تواند موجود باشد . در یك كلاس car ، افزودن بدنه ، موتور ، لاستیك‌ها ، گیربكس ، صندلی و غیره بر روی car با هم متفاوتند . هنگامی كه سرویس گیرنده‌ها می‌خواهند از متدهای روی یك شیء استفاده كنند ، Constructor اطمینان می‌دهد كه هر متد عملیات را با موفقیت به انجام خواهد رساند و نتیجه مورد انتظار را برخواهد گرداند . برای مثال ، برای روشن كردن رادیو درون اتومبیل شما ، باید یك رادیو نصب شده‌ باشد . در این نمونه ، Constructor مسئول اطمینان بخشیدن از این موضوع است كه رادیو پیش از استفاده نصب شده است. به غیر از مقدار دهی شیء به یك وضعیت آماده معتبر ، تفاوت اساسی دیگر این است كه یك Constructor هیچ مقدار برگشتی صریحی ندارد . تمامی Constructor ها یك متغیر جدیداً اختصاص یافته را برای استفاده در برنامه شما بر می‌گردانند .در نتیجه ، برگرداندن یك مقدار در Constructor كلاس ، غیرقانونی است . اطمینان یافتن از طراحی مناسب اشیاء و Constructor های آنها ، مسئله‌ای است كه توسعه دهندگان زیادی اغلب با آن روبرو می‌شوند . هنگامی

كه كلاس برنامه‌نویسان را وادار می‌كند كه اعضای شیء را پیش از استفاده از متدهای خود تنظیم كنند یا هنگامی كه كلاس برنامه‌نویس را وادار می‌كند تا از ترتیب خاصی ، هنگام فراخوانی متدهای شیء پیروی كند ، كد گیج كننده و مبهمی را ایجاد می‌كند . از OPP به این منظور استفاده

می‌كنیم كه به طور كلی از بروز چنین مسئله‌ای جلوگیری كنیم . اگر كلاس مهندسی شده است تا از Constructor های خود برای معرفی بخشهای كلیدی كلاس استفاده نكند ، اشكال از طراحی ضعیف ناشی می‌گردد . دوباره در همان تله گرفتار نشوید .كلاسی كه خوب طراحی شده باشد برنامه‌نویسی ، اشكال‌زدایی و نگهداری زیادی را حذف می‌كند .بیایید نگاهی به دستور زبان كل

ی برای Class در PHP بیندازیم ، كه استفاده از این سه نوع كامپوننت را نشان می‌دهد : PHP Code:
class ClassName [extends ParentclassName]
{
var $member1;
var $member2;

var $memberN;
// Constructor
function Class Name()
{
}
function method1()
{
}
… function method2()
{
}
function methodN()
{
}
}

همان‌گونه كه می‌بینید ، یك كلاس چیزی نیست جز یك مجموعه از اعضای تعریف شده (متغیرها) و متدها (توابع) . اعضا می‌توانند یا انواع داده اولیه نظیر integer ها و رشته‌ها یا انواع پیچیده‌تری نظیر آرایه‌ها یا اشیاء دیگر باشند . از آنجایی كه PHP از شما انتظار ندارد كه انواع را تعریف كنید ، فقط می‌توانید متغیرهایتان را در بالای كلاس ، به صورتی كه در بالا نشان داده شد ، نام ببرید .
با PHP می‌توانید متغیرهایی را در تابع خود ایجاد كنید ؛ آنها به همان خوبی كه مورد انتظارتان است كا رخواهند كرد . اگرچه ، تمرین خوبی نخواهد بود اگر این كار را انجام دهید . این به آن خاطر است كه وقتی برنامه‌نویسان دیگر به كلاس شما نگاه می‌كنند ، فوراً تمامی اعضای آن را پیش از نگاه كردن به پیاده‌سازی توابع بشناسند .
متدها به سادگی تمام سرویس‌هایی هستند كه این كلاس تضمین می‌كند تا برای سرویس گیرنده‌هایش فراهم كند. سرویس گیرنده‌ها می‌توانند برنامه‌های دیگر ، پروژه‌های دیگر و غیره باشند.

Class.php :
در این فایل دو کار انجام می شود :
CheckFileConfig() این تابع چک می کند که آیا فای

ل config.php موجود است یا خیر در غیر این صورت برنامه را غیر فعال خواهد کرد.
Connect () این تابع برنامه را به بانک اطلاعاتی متصل می کند.
Index.php:
این قسمت وظیفه کنترل فایل های سیستم را عهده دار می باشد
session start : این تابع باعث می باشد که جلسات که برای ورود و خروج می باشد در صفحه باقی بماند و در عبور و مرور پاک نشود.

PHP Code:

$option = $_REQUEST[option];
$task = $_REQUEST[task];

این قسمت باعث می شود که اطلاعاتی خواصی که در همه جا مورد نیاز هست از Post و Get دریافت شود
عبور و مرور پاک نشود.
PHP Code:

include(“class.php”);
include(“config.php”);

دو فایل Config و Class :
دو فایل config و class را باز خواهیم کرد تا از توابع و اطلاعات آن استفاده کنیم
$Class Vote = new Class Vote()
$Class Vote->Check File Config()
$Class Vote->connect($config_hosting,$config_userDB,$config_passDB,$config_database(

کلاس را اجرا و وجود فایل Config را تست به بانک اطلاعاتی وصل خواهیم شد
if($option == ”) $option = login;
@Include (“$option.php”);

در این قسمت اگر $option هیچ اطلاعاتی نداشت آن را مساوی login قرار می دهد ، و مقدار $option را اجرا خواهیم کرد البته اگر $option خالی نباشد مقداری که در Get یا Post می باشد را اجرا می کند
قبل از include یک @ مشاهده می کنید که باعث می ش

ود تا هیچ پیغام خطائی به کاربر داده نشود.
Login.php :
این قسمت اطلاعات وارد شده توسط کاربر برای ورود به بخش مدیریت یا رای گیری را تست می کند اگر username برای مدیر باشد به قسمت مدیریت و در صورت که برای کاربری باشد وارد بخش رای گیری می شود

Include (“login.html.php”);

فایل login.html.php را باز خواهیم کرد تا بتوانید از کدهاش استفاده کنیم

switch($task){
#______________#
case ‘Login’:
Login();
break;
#______________#
case ‘Register’:
UserControl::Register();
break ;
#______________#
case ‘Submit_Register’:
checkRegister();
break ;
#______________#
default:
UserControl::Login();
break;}

این قسمت برسی می کند که $task با کدام گزینه مساوی می باشد در صورت عدم تساوی به default ختم

می شود.
تابع check Register
گرفتن یک کویی از بانک اطلاعاتی که باعث می شود بفهمیم که آیا این نام کاربری وجود دارد ، یا خیر در صورت پیدا کردن عدد مساوی 1 می باشد.
function checkRegister(){

$Check Username = mysql_query(“Select count(username) as num From users WHERE `username`="”.$_POST[Username].”‘”);
$Check Username = mysql_fetch_array($checkUsername);

if($_POST[Password1] != $_POST[Password2] || $_POST[Username] == ” || $_POST[Email] == ” || $_POST[Last Name] == ” || $_POST[Password1] == ” || $_POST[Password2] == ” || $check Username[num] != 0)
{

خوب ما در اینجا فیلد های username , password , password2 , email , last name را چک می کنیم که آیا درست پر شده است یا خیر مثلا گزینه $_POST[Email] == ” می گوید اگر فیلد email خالی بود (”) انجام بده و $_POST[Password1] != $_POST[Password2] تست می کند که اگر password1 با password2 مساوی نبود فعالیتهای پایین را انجام دهد،همچنین || به معنی OR می اشد
if($check Username[num] != 0)
echo “<table align=\”center\”><td><font class=\”error\” >”._old register.”</font></td></table>”;
if($_POST[Username] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_username.”</font></td></table>”;
if($_POST[Password1] != $_POST[Password2] || $_POST[Password1] == ” || $_POST[Password2] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_password.”</font></td></table>”;
if($_POST[Email] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_email.”</font></td></table>”;

if($_POST[LastName] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_name.”</font></td></table>”;

این گزینه همان کار بالا را انجام می دهد با این تفاوت که هر کدام را جدا کردیم تا یک خطا مختلف به کاربر دهد
UserControl::Register();

در اینجا گفته شده اگر گزینه ها با خطا مواجه شد دوباره صفحه عضویت را بالا بیاور این گزینه چون در قسمت {} ، IF اولی می باشد اجرا خواهد شد و return قبل از } می گوید بقیه برنامه را اجرا نکن

: Submit Register
این تابع تست خواهد کرد که آیا مدیر وجود دارد یا خیر در صورتی که مدیر نباشد کاربر با سطح دسترسی 1 و در صورتی که مدیر باشد کاربر با سطح دسترسی 0 وارد بانک اطلاعاتی می شود
Submit Register ();

این گزینه باعث می شود که عضویت ثبت شود همین طور که می دانید اگر برنامه با خطا مواجه شود گزینه
();User Control: Register فعال شده و با وارد کردن گزینه return از اجرای بقیه برنامه خود داری
می شود و با } تابع ما تمام می شود.

Function check Register (){
$checkUsername = mysql_query(“Select count(username) as num From users WHERE `username`="”.$_POST[Username].”‘”);
$checkUsername = mysql_fetch_array($checkUsername);
if($_POST[Password1] != $_POST[Password2] || $_POST[Username] == ” || $_POST[Email] == ” || $_POST[

LastName] == ” || $_POST[Password1] == ” || $_POST[Password2] == ” || $checkUsername[num] != 0)
{
if($checkUsername[num] != 0)
echo “<table align=\”center\”><td><font class=\”error\” >”._old_register.”</font></td></table>”;
if($_POST[Username] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_username.”</font></td></table>”;
if($_POST[Password1] != $_POST[Password2] || $_POST[Password1] == ” || $_POST[Password2] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_password.”</font></td></table>”;
if($_POST[Email] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_email.”</font></td></table>”;

if($_POST[LastName] == ”)
echo “<table align=\”center\”><td><font class=\”error\” >”._please_type_name.”</font></td></table>”;
UserControl::Register();
return;
}
SubmitRegister();
}

خوب با درست بودن کارهای بالا و اتمام هر کدام باید برای ادامه کار تابع Submit Register ساخته شود .

function SubmitRegister(){
$CheckGid = mysql_query(“Select count(gid) as num From users WHERE `gid`=’1′”);
$CheckGid = mysql_fetch_array($CheckGid);

این تابع تست خواهد کرد که آیا مدیر وجود دارد یا خیر در صورتی که مدیر نباشد کاربر با سطح دسترسی 1 و در صورتی که مدیر باشد کاربر با سطح دسترسی 0 وارد بانک اطلاعاتی می شود.در اینجا می گوییم اگر کاربری با سطع دسترسی (gid) که مساوی 1 باشد چند تا می باشد و داده را در $CheckGif ذخیره شده و همان طور که در کوری گرفته شده می بینید count(gid) را ما به num نام دادیم

if($CheckGid[num] == 0){
mysql_query(“INSERT INTO `users` (`id`, `username`, `password`, `email`, `lastname`, `gid`) VALUES (”, ‘”.$_POST[Username].”‘, ‘”.md5($_POST[Password1]).”‘, ‘”.$_POST[Email].”‘, ‘”.$_POST[LastName].”‘, ‘1’)”);
}else{
mysql_query(“INSERT INTO `users` (`id`, `username`, `password`, `email`, `lastname`, `gid`) VALUES (”, ‘”.$_POST[Username].”‘, ‘”.md5($_POST[Password1]).”‘, ‘”.$_POST[Email].”‘, ‘”.$_POST[LastName].”‘, ‘0’)”);
}

خوب این قسمت از $ChechGid بالا استفاده کرده می گوییم اگر مساوی 0 بود اولین وضعیت را انجام دهد و در غیر این صورت دومی تنها فرق در 0 و 1 آخر می باشد که 0 به معنی کاربر و 1 به معنی مدیر !

UserControl::Login();

با این قسمت ما تابع ساخته شده در فایل login.html.php را فرا خوانی کردیم برای فرا خوانی آن ابتدا نام کلاس آن UserControl و :: و بعد نام تابع login() و در آخر } تابع ما تمام شد !!

تابع function login(){ برای این می باشد که تست کند آیا کاربر است یا مدیر
$CheckGid = mysql_query(“Select count(gid) as num From users WHERE `gid`=’1′ AND `username`="”.$_POST[Username].”‘”);
$CheckGid = mysql_fetch_array($CheckGid);

در اینجا نام کاربری را در بانک جستج

و می کنیم تا ببینیم که آیا سطح دس

 صورت جواب ما 0 و در صورت 1 بودن سطح دسترسی کار اول را انجام می دهیم
if($CheckGid[‘num’] == 1){
SelectGid(1,admin);
}else{
SelectGid(0,vote);
}

همین طور که در تابع بالا می بینید اگر جواب مساوی 1 بود مقدار اول تابع 1 و دوم می گوید به ادمین برو و در دوم می گویم مقدار اول 0 و به vote برو این مقدار ها را در تابع SELECTGID تنظیم کرده ایم که در پایین خواهید دید.

— قسمت مدیریت —
Browse
این تابع تمامی اطلاعات کاندید را لیست می کند
CheckAdmin
این تابع با هر دفعه Refresh یک بار چک می کند که آیا هنوز اطلاعات مدیر در بانک است و اگر پسورد و نام کاربری درست نباشد آن را از بخش مدیریت اخراج می کند ، همین طور اگر سطح دسترسی آن 1 نباشد اخراج خواهد شد

Delete
این تابع کاندید مورد نظر را پاک می کند

Edit
این تابع صفحه ویرایش کاندید مورد نظر را خواهد آورد

Update
این تابع ویرایش ای که مدیر بر رویه آن کاندید کرده را در بانک اطلاعاتی بروز می کند .
همین طور اگر فیلد خالی باشد به مدیر اخطار می دهد و بانک را بروز نمی کند !

Newkandid
این تابع صفحه برای ایجاد کاندید جدید بالا خواهد آورد

NewSave
این تابع اطلاعات کاندید جدید را در بانک اطلاعاتی قرار خواهد داد

ShowVote
این تابع آمار کاندید ها را نمایش می دهد به صورت
تعداد رای به هر کاندید را مشاهده کند
در صد رای هر کاندید به صورت عددی و گرافیکی

تصویر مربوط به نمایش و حذف وکاندیدا

تصویر مربوط به اضافه نمودن کاندید جدید

تصویر مربوط به نتایج کلی آرا

— قسمت رای گیری —

Check User
این تابع با هر دفعه Refresh چک می کند که آیا این نام کاربری و پسورد و سطح دسترسی 0 در بانک است یا خیر ! در صورت وجود برنامه ادامه خواهد داد ولی در غیر این صورت کاربر را اخراج خواهد کرد

List Vote
در تابع لیست کاندید ها را برای کاربر خواهد آورد و کاربر باید یکی را انتخاب کند و بر رویه Submit کلیک کند !
Save Vote
این تابع کاندید مورد نظر کاربر را در بانک اطلاعاتی ذخیره خواهد کرد !

Check Vote
این تابع چک خواهد کرد که آیا این کاربر با این کامپیوتر و این آی پی تا به حال رای داده یا خیر !
در صورتی که رای داده باشد در هر زمانی که login کند آرا را برای او نمایش خواهد داد و نمی تواند رای دهد
Show Vote
این تابع آرا را برای کاربر نمایش می دهد که عبارت است از تعداد رای به هر کاندید را مشاهده کند در صد رای هر کاندید به صورت عددی و گرافیکی

— تصاویر —

..

خوب حالا به تابع SelectGid که در بالا فراخوانی کردیم سری می زنیم
Function SelectGid($gid,$GO){
$Check Valid User = mysql_query(“Select count(*) as num From users WHERE `gid`=’$gid’ AND `username`="”.$_POST[‘Username’].”‘ AND `password`

="”.md5($_POST[‘PassWord’]).”‘”);
$Check Valid User = mysql_fetch_array($CheckValidUser);
If (! ($Check Valid User [‘num’] == 1)){
Session unset ();
Echo “<table align=\”center\”><tr><td><font class=\”error\”>”._retype.”</font></td></tr></table>”;
User Control: Login ();
Return;}
$Data user = mysql_query(“Select * From users WHERE `gid`=’$gid’ AND `username`="”.$_POST[‘Username’].”‘ AND `password`="”.md5($_POST[‘Password’]).”‘”);
$Data user = mysql_fetch_array($data user);
$_SESSION [‘username’] = $data user [‘username’];
$_SESSION [‘password’] = $data user [‘password’];
session_write_close();
Echo’
<Script language=”JavaScript”>
Function reload ()
{
Document. Frm Refresh. Submit ();
}
var speed = 1
Function Start Redirect Timer ()
{
Set Timeout (“reload ()”, speed);}
//–>
Start Redirect Timer ();
</script>
<Form id=”frm Refresh” name=”frm Refresh” action=”.phpoption=’.$GO."” Method=”Post”>
</Form>’;
}

Function Select Gid($gid,$GO){
این قسمت اول تابع است که با { شروع کردیم $gid مقدار اولی است که در بالا اگر یادتان باشد با 0 و 1 تغییر می دادیم و $GO همان است که ما باadmin و vote پر کردیم حالا به کار این دو می پردازیم !

$Check Valid User = mysql_query(“Select count(*) as num From users WHERE `gid`=’$gid’ AND `username`="”.$_POST[‘Username’].”‘ AND `password`="”.md5($_POST[‘Password’]).”‘”);
$Check Valid User = mysql_fetch_array($Check Valid User);
خوب بالا را نگاه کنید دوباره از بانک اطلاعاتی سوال کردیم که آیا این نام کاربری و پسورد وجود دارد یا خیر !
در صورت وجود مقدار 1 و در غیر این صورت 0 می باشد که باعث خطا خواهد شد !
در ساخت تابع یادتان هست که از $gid استفاده کردیم به کویری گرفته شده نگاه کنید `gid`=’$gid’ اگر مقدار را 0 وارد کرده باشیم با سطح دسترسی 0 می گردد و اگر 1 وارد می کردیم دنبال این نام کاربری با سطح دسترسی 1 می گردد به پایین نگاه کنید
SelectGid(0,vote);

خوب در اینجا $gid اولین آرماگون بود و ما آن را 0 قرار دادیم
If (! ($Check Valid User [‘num’] == 1)){
Session unset ();
Echo “<table align=\”center\”><tr><td><font class=\”error\”>”. _Retype.”</font></td></tr></table>”;
User Control: Login();
Return;
}
$Data user = mysql_query(“Select * From users WHERE `gid`=’$gid’ AND `username`="”.$_POST[‘Username’].”‘ AND `password`="”.md5($_POST[‘Password’]).”‘”);
$Data user = mysql_fetch_array($data user);

اگر کاربر اطلاعات را درست وارد کرده باشد ، اطلاعات آن بیرون کشیده خواهد شد تا ذخیره شود

$_SESSION [‘username’] = $data user [‘username’];
$_SESSION [‘password’] = $data user [‘password’];

اینجا اطلاعات را از $data user که username و password است را در جلسات ذخیره می کنیم برای فهمیدن این بخش قسمت آموزش های http://forum.persiantools.com/f23.html را بخوانید !

session_write_close();

در اینجا ذخیره داده ها قطع می کنیم

redirect(“index.phpoption=”.$GO);

در اینجا تابع ای که برای رفتن به صفحات دیگه است را فراخوانی می کنیم و $GO همان گزینه ای است که شما با admin یا vote پر کردید و اتمام تابع } و فایل لوگین نیز پایان یافت !

Admin.php :
فایل admin.php را باز و به کدهای آن نگاهی می کنیم اولین تابع ای که فراخوانی می شود
Check Admin می باشد ، با این تابع تست می کنیم که آیا یک چنین کاربری وجود دارد یا خیر ! و بعد به قسمت switch می رویم در اینجا این تابع $task را با

تمامی مقادیر ی که بعد از case وارد کردیم تست
می کنم و با همانی که مطابقت داشت اجرا می کنم.
switch($task){
case ‘New’:
Newkandid();
break ;
case ‘NewSave’:
if($_POST[‘name’]){
NewSave();
}else{
$error = 1;
Newkandid();
}
break;
case ‘Browse’:
Browse();
break;
case ‘Edit’:
Edit();
break;
case ‘delete’:
delete();
break;
case ‘update’:
if($_POST[‘name’]){
update();
}else{
$error = 1;
Browse();
}

break;
case ‘State’:
ShowVote();
break;
case ‘loginout’:
include(“login.php”);
break;
default:
html_admin::home();
break; }

حالا به تابع زیر نگاه کنیم

Function Browse (){
html_admin::home();
Echo “<p></p>”;

$ListKandid = mysql_query(“Select * From kandid”);
html_admin::Browse($ListKandid);
}
این تابع ابتدا تابع home را از html_admin که در فایل admin.html.php است اجرا می کند در خط دوم echo “<p></p>” یک کد اچ تی ام ال را اجرا می کند که باعث می شود در نمایش صفحه قسمت home یک فاصله ای از browse داشته باشد. در خط چهارم ما از بانک اطلاعاتی تمامی اطلاعاتی که در جدول kandid است را تقاضا می کنیم و در خط پنجم آن را به تابع browse می دهیم تا برای ما نمایش دهد !
Function Check Admin (){
$Check Valid Admin = mysql_query(“SELECT COUNT(*) as num FROM users WHERE `gid`=’1′ AND `username`="”.$_SESSION[‘username’].”‘ AND `password`="”.$_SESSION[‘password’].”‘”);
$Check Valid Admin = mysql_fetch_array($CheckValidAdmin);
if(!($Check Valid Admin[‘num’] == 1)){
Echo _error_expire;
Include (“login.php”);
die;} }

این تابع امنیت کار ما را تضمین می کند در خط اول این تابع می گوییم برای ما بگو که آیا این نام کاربری و پسورد در بانک اطلاعاتی موجود است ؟ به شرطی که سطح دسترسی آن نیز 1 باشد .
شاید توجه کرده باشید که این باید $_SESSION بجای پست آمده !
اگر به خاطر داشته باشید در آخرین تابع Login.php یک قسمت بود که برای ما اطلاعات را در جلسات ذخیره می کرد ، در اینجا آن را فراخوانی کردیم !
در خط دوم می گوییم که برای ما اطلاعات را پردازش کن و آن را به مقداری قابل استفاده در آور !
در سومین خط شما دستور if را می بینید که می گوید اگر Check Valid Admin[‘num’] مساوی 1 بود کار زیر را انجام بده * ولی * توجه کنید که پشت این دستور یک ! می باشد که باعث می شود خلافش را عمل کند یعنی اگر مساوی 1 نبود کار زیر را انجام دهد !
حالا فرض بر این است که غیر از 1 باشد می گوید echo _error_expire یعنی برای کاربر error_expire را نمایش دهد !

شاید بگویید error_expire از کجا آمد برای این منظور به فایل farsi.php یک سری بزنید همان طور که می بینید با دستور define ما جای error_expire را با یک جمله دیگر تغییر دادیم !
خوب در اینجا می گویم فایل login.php را باز کن و در خط پایانی می گوییم die یعنی بقیه برنامه را اجرا نکن یادتان باشد اگر die نباشد برنامه به کار خود ادامه می دهد و مهاجم هر کاری که بخواهد می تواند بکند

Function delete (){

mysql_query(“DELETE FROM `kandid` WHERE `id` = “.$_POST[‘Id’].””);
Redirect (“index.phpoption=admin&task=Browse”);
}

در تابع بالا می گوییم یک رکورد از kandid را به شرطی که id آن مساوی $_POST[‘id’
و در پایین گفتیم به index.phpoption=admin&task=Browse برود

Function Edit (){
html_admin::home();
html_admin::edit();
}
در اینجا گفته شد
دو تابع home و edit در کلاس html_admin اجرا شوند
Function update (){
If ($_POST [‘name’]){
mysql_query(“UPDATE `kandid` SET `name` = ‘”.$_POST[‘name’].”‘ WHERE `id` = “. $_POST [‘id’].””);
Redirect (“index.phpoption=admin&task=Browse”);
} Else {
Browse ();
}
}

مختصر آموزشی پیرامون زبان PHP

– نحوه ساخت ، بارگذاری و اجرای یک فایل PHP
– چگونه از PHP و HTML در یک صفحه استفاده کنیم
– چگونه کدها را با استفاده از کامنتهای برنامه نویسی قابل فهم تر کنیم

خوب برای شروع یک Text Editor رو باز کنید. php هم مانند html مبتنی بر متن ساده است بنابراین از هر ادیتوری میشود برای ساخت فایل php استفاده کرد. مثلا Notepad خود را باز کنید.
خطوط زیر را وارد کنید و فایل را به هر اسمی با پسوند .php ذخیره کنید. مثلا first.php
Code:
1: <
2: print “Hello Web!”;
3: >
در صورتیکه php روی کامپیوتر خود نصب کرده اید ، فایل رو در وب سرور خود کپی کنی

د و آن را از طریق browser صدا کنید. و یا اینکه فایل رو در یک سایت با دسترسی PHP بارگذاری نمایید و آدرس آن را در browser تایپ کنید. پس از اجرای فایل جمله Hello Web! رو بر روی صفحه خواهید دید.
در صورتیکه کدها خود را یعنی همان چیزی که در ادیتور تایپ کردید را روی صفحه دیدید. بدان معنی است که وب سرور شما فایل php رو اجرا نکرده (یا php بر روی آن نصب نیست و یا پس
خوب حالا که صفحه اول php خود را upload کرده اید کمی در آن دقت کنید.
در شروع و در اولین خط کد
Code:
<
همیشه شروع یك كد php باید با همین تگ ها باشد. در غیر اینصورت سیستم با کدها مثل html رفتار میکند و بدون هیچگونه عملیاتی همان متن کد را نمایش خواهد داد. و در انتهای کد PHP نیز حتما باید
Code:
>
را وارد کنید که به server می فهماند که کد php اینجا تمام شده است و از این به بعد با کدهای html روبرو است.
در انتهای هر خط از کدها باید از
Code:
;
استفاده شود. در غیر اینصورت سرور کدها را در یک خط و پشت سر هم تشخیص می دهد. پس شما می توانستید کد بالا را در یک خط و به صورت Code:
< Print “Hello Word!” ; >
نیز بنویسید.
دستور Print
این دستور در واقع نمایش دهنده است و هر چیزی که به آن بدهید را بر روی صفحه نمایش می دهد. شما
می توانید مقدار یک متغیر را نیز با استفاده از Print نمایش دهید.
ترکیب PHP و HTML در یک صفحه
کدهای زیر را در notepad وارد نمایید و ذخیره و upload کنید.
Code:
1: <html>
2: <head>
3: <title>Listing 3.2 A PHP script including HTML</title>

4: </head>
5: <body>
6: <b>
7: <
8: print “hello world”;
9: >
10: </b>
11: </body>
12: </html>
خوب همانطور که می بینید کدهای HTML به راحتی می توانند در کنار کدهای PHP کار کنند. در واقع سرور قبل از رسیدن به کد

برای دریافت اینجا کلیک کنید

سوالات و نظرات شما

برچسب ها

سایت پروژه word, دانلود پروژه word, سایت پروژه, پروژه دات کام,
Copyright © 2014 cpro.ir
 
Clicky