• 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساختن رویداد در php
#1
سلام
من یه مشکلی دارم نمیدونم از چه راه حلی استفاده کنم!

یک تعدادی عضو تو سایتم دارم که میخوام تو روز تولدشون به اونا sms

ارسال کنه ، فکر کنم این کار با رویداد انجام بشه!

از یک طرفم فکر میکنم که با cron job سرور انجام میشه!

اگه راهنماییم کنید ممنونم
  پاسخ
تشکر شده توسط :
#2
نقل قول:فکر کنم این کار با رویداد انجام بشه!
من دقیقا نمیدونم منظورت از رویداد چیه؟ (منظورت رویداد تو mysql هست؟) اگر هست که امکان پذیر نیست چون باید سمت سرور پیامک بفرستی.
با همون cron انجام بدی بهتره.
غایب
  پاسخ
تشکر شده توسط : mojtabadj
#3
با cron چطوری اینکار رو انجام بدم؟
  پاسخ
تشکر شده توسط :
#4
کافیه یه کران بسازی بعد ساعت و تاریخشو مشخص کنی بعد آدرس فایلی که باید اجرا بشه رو بدی. داخل اون فایل هم عملیات ارسال پیامک قرار داره. ساعت و تاریخ رو هم طوری تنظیم کن که هر روز هفته هر ماه سر ساعت مثلا 12 شب اون فایل چک بشه. البته الآن که فکر میکنم میبینم اصلا درست نیست اینکار. چون یه روند بی خودی رو سرور انجام میشه. به این خاطر که ممکنه تو طول یک هفته یا اصلا یک ماه کسی تولدش نباشه. خب هر روز بخواد این عمل صورت بگیره قطعا رو سرور تأثیر داره (تأثیرش نمیدونم محسوس هست یا نه . اینو باید از ادمین بپرسی)

بنظرم راه دیگه ای هم هست. البته به تعداد دفعات بازدید از یک صفحه بستگی داره. شما در صفحه ای که زیاد بازدید میشه اون فایل عملیات ارسال پیامک رو وارد کنید و هرکس که در روز وارد اون صفحه میشه چک بشه (باید بشه کاری کرد که یه بار در روز این عمل صورت بگیره ولی من نمیدونم. راه واسش زیاده. استانداردش تو خاطرم نیست.)

من خیلی سرچ کردم. ولی تنها راه مناسب بنظرم http://stackoverflow.com/a/865669 اومد. باید یه فایل لاگ بسازی و آخرین باری که اجرا شده رو ذخیره کنی.
غایب
  پاسخ
تشکر شده توسط : mojtabadj
#5
این کدیه که تو اون سایت بود
کد پی‌اچ‌پی:
$lastRunLog '/path/to/lastrun.log';
if (
file_exists($lastRunLog)) {
    
$lastRun file_get_contents($lastRunLog);
    if (
time() - $lastRun >= 86400) {
         
//its been more than a day so run our external file
         
$cron file_get_contents('http://example.com/external/file.php');

         
//update lastrun.log with current time
         
file_put_contents($lastRunLogtime());
    }


کد باحالیه ولی یه نکته اینجاست که فایل رو ریخت تو cron$ حالا این فایل رو چطوری اجرا میکنه؟؟
میشه یه کمی اجراشو توضیح بدین من حالیم نمیشه!
گفته با command line انجام بدین چطوری این کار رو میکنه!
  پاسخ
تشکر شده توسط :
#6
نقل قول:کد باحالیه ولی یه نکته اینجاست که فایل رو ریخت تو cron$ حالا این فایل رو چطوری اجرا میکنه؟؟
اون اسم متغیر هست. ربطی به cron job نداره. در نهایت تاریخ رو در فایل ریخت و سیوش کرد. در حقیقت اون همون کدیه که میخوای. خودش تکمیل نوشته. اونو ویرایش کن و بذار بالای کد اون صفحه ای که زیاد بازدید داره.

شما کافیه یه else بدی و توش اون فایل عملیات ارسال پیامک رو اینکلود کنی. البته دقیق نفهمیدم داخل if باید باشه یا else ولی امتحان کن ببین کدوم جواب میده.
غایب
  پاسخ
تشکر شده توسط :
#7
من تو اجرای cron موندم کجا باید این دستورات رو اجرا کنم؟

دستورات تو لینک زیر هست
http://www.thegeekstuff.com/2011/07/php-cron-job
  پاسخ
تشکر شده توسط :
#8
آها. توی کران میخوای اجرا کنی؟ خب نیازی اونوقت به اون کدها نداری. باید توی پنلت کران داشته باشی (برات فعال کنن) بعد میری همه چی مشخصه. تاریخ و آدرس فایل مهم اند.
غایب
  پاسخ
تشکر شده توسط : mojtabadj
#9
(۱۳۹۱ تير ۰۲, ۰۱:۰۱ ب.ظ)cyletech نوشته: آها. توی کران میخوای اجرا کنی؟ خب نیازی اونوقت به اون کدها نداری. باید توی پنلت کران داشته باشی (برات فعال کنن) بعد میری همه چی مشخصه. تاریخ و آدرس فایل مهم اند.

این الان درسته؟ تو پنلم تنظیم کردم میخوام هر روز صبح ساعت 9 اجرا شه!

آدرس سایت رو همینطوری گذاشتم


فایل‌های پیوست تصاویر بندانگشتی
   
  پاسخ
تشکر شده توسط :
#10
بنظرم باید بجای ستاره در دقیقه صفر گذاشته بشه تا دقیقا ساعت 9 صبح اجرا بشه. خودمم هنوز کامل نفهمیدم داستان این تاریخ و ساعت رو Cool
غایب
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان