PDA

View Full Version : توابع در php



beh3000
سه شنبه 22 بهمن 1392, 16:47 عصر
سلام

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

روش کار من به این صورته که مثلا روی یک button که کلیک شد یه تابع javascript فراخوانی میشه و اون به فایل php مورد نظر ایجکس میزنه :: تابع signin به فایل signin.php و تابع insert به فایل insert.php ایجکس میزنه :: تا اینجا که مشکلی نیست ؟

حالا من میخوام به جای اینکه هر تابع با یک فایل جدا کار کنند همه فایل های php را بصورت تابع در یک فایل functions.php جمع کنم و همه توابع javascript با اون فایل کار کنند . آیا راهی هست که تابع جاوااسکریپت مثلا signin تابعی که به اسم signin در فایل function.php ایجاد شده رو صدا بزنه و اجرا کنه ؟؟؟؟

آیا این روش منطقیه ؟؟ از لحاظ امنیتی ؟؟ از لحاظ سنگین کار کردن یا سبک بودن ؟؟

امیدوارم منظورم رو خوب رسونده باشم -> ممنون از همه دوستان

SadeghPro19
سه شنبه 22 بهمن 1392, 17:15 عصر
خب شما موقع ارسال اطلاعات ایجکس به فایل functions.php یه پارامتر دیگه هم بفرستید مثلا اسمش رو بزارید type بعد توی فایل funcitons.php بیاید چک کنید که اگه type مثلا مقدارش مساوی بود با signin تابع signin رو اجرا کنید و الی آخر...
فرض میکنیم آدرسی که با ایجکس میفرستی به این شکل هست:
$.post("functions.php",{type:'signin','username':username,'password':pas sword,..} ,function(data){});
کد فایل fucntions.php هم به این شکل هست:

function signin($username,$password){
//do login
}
if($_REQUEST['type']=='signin'){
if( isset($_REQUEST['username'],$_REQUEST['password']) )
signin($_REQUEST['username'],$_REQUEST['password']);
}
ولی در کل به نظر من سعی کن کم استفاده کنی از ایجکس البته نه اینکه استفاده نکنی ها بجا استفاده کن. من خودم قبلا یه سایت نوشته بودم واسه کسی بعد مدیریتش رو فول ایجکس ساخته بودم کوچکترین چیزش هم ایجکس بود خوب هم بود ولی خیلی سنگین شده بود و فشار زیادی هم به سرور می آورد. واسه همین دیگه تصمیم گرفتم کم و در واقع بجا از ایجکس استفاده کنم جاهایی که واقعا لازمه.

beh3000
سه شنبه 22 بهمن 1392, 17:18 عصر
حالا به نظرت این روش خوبه ؟ که بصورت تابع در یک فایل باشه و یا بصورت فایل های جداگانه باشه ؟؟

arta.nasiri
سه شنبه 22 بهمن 1392, 17:19 عصر
سلام

شما میتونید واسه هر درخواست یک لینک مثل این http://yourname.com/functions.php?do=signin در نظر بگیرید، سپس داخل فایل functions مقدار do رو بررسی کنید، اگه تابعی با اون مقدار بود فراخوانی میکنی اگه هم که نه تصمیم با خودته که چیکار کنه!!

به نظرم منطقی بودن یا نبودنش بستگی به ساختار کلی برنامت داره. از لحاظ امنیتی هم خب طبیعتا باید مقادیر ورودی ( GET ) رو فیلتر کنید و محدودش کنید به اون توابعی که میخواهید از این طریق قابل اجرا باشن!

beh3000
سه شنبه 22 بهمن 1392, 18:02 عصر
من تو پروژم لود صفحه ها که ایجکس نیست هر کدوم با آدرس خودشون بارگذاری میشن ولی تمام insert ها update و delete ها و سرچ کردن ها با ایجکسه , به نظرتون زیاده ؟؟؟

SadeghPro19
سه شنبه 22 بهمن 1392, 20:24 عصر
اگه اینطور باشه خوبه.مشکلی نیست و از راه حلی که گفتم استفاده کن ..مشکلی پیش نمیاد.

sadegh1362
سه شنبه 22 بهمن 1392, 20:36 عصر
سلام
به نظر من اینکار خوبه که توابع همه در یک صفحه به صورت جدا نوشته بشه اما یادمون نره که هدف توابع ajax به کارگیری کدهای php در jquery یا javascript هستش . پس اینکه کدها در صفحه های جدا جدا باشن مشکلی پیش نمیاره . بهتره بذاریم کدها در جای خودشون باشن و هر زمان نیاز شد با ajax فراخونیشون کنیم . مگر اینکه بخوایم به کدهامون یه نظمی بدیم این کار خوبه . که در این صورت روشی که grlearn (http://barnamenevis.org/member.php?52028-grlearn) گفتن به نظرم روش خوبیه.