السلام عليكم ورحمة الله وبركاته
ممكن تساعدوني يالاعضاء؟؟
ممكن تساعدوني في دالة تحسب الوقت الحالي والتالي والتاريخ بعد؟؟
السلام عليكم ورحمة الله وبركاته
ممكن تساعدوني يالاعضاء؟؟
ممكن تساعدوني في دالة تحسب الوقت الحالي والتالي والتاريخ بعد؟؟
السلام عليكم
هل المطلوب دالة كهذه :
$date1=date("j-n-Y");
$time1 =date("H:i");" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------
شكراً أخي الفاضل فاروق
ممكن تشرح لي كيفية استخدامهم ؟؟
+
بغيت أعرف كيف أحسب اليوم التالي مثلا اليوم تاريخ 1 ، كيف أخليه يخبرني اليوم عن تاريخ 2
بمعنى آخر مثل أردته يكون مثل مذكرة ،، مثلا إني أريده يذكرني بتاريخ 2 قبل هذا التاريخ بيوم؟؟
شرح مبسط عن اللي أشتغل عليه:
عندي قاعدة بيانات لتذكير الناس اللي مسجلتنهم عندي،
وطبعا مسجلة في قاعدة البيانات أرقام الموبايلات وتواريخ التذكير،
وعقب السستم كل يوم يشوف الناس اللي مواعيدهم اليوم الثاني يبعث لهم مسجات تذكير
يعني لازم يقرا التاريخ من قاعدة البيانات
انتا محتاج حاجه اسمها الكرن جوب corn job
يابن ادم ولدتك امك باكياً والناس حولك سروراً فعمل لي يوم اذا بكوا في يوم موتك ضاحكاً مسروراً
السلام عليكم
بالنسبة للمفكرة
هل المستخدم يقوم بكتابة التاريخ الذى يريد أن يرسل تنبيه فيه ؟
أم ماذا ؟؟؟
أقصد مستخدم باسم س مثلا يريد ان يتم التنبيه فى يوم 5/4/2007 ماذا سيفعل ليقوم بذلك ؟
" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------
شكرا على تفاعلكم معي :lol:
أخي abkareno ما هو الكرن جوب؟؟
كما قلت أخي الفاروق بأن المستخدم يضع التاريخ ويتم تذكرته قبل التاريخ بيوم
هل من مساعدة؟؟
السلام عليكم
الحل الأفضل فى ذلك هو ...
أن يقوم المستخدم بكتابة التاريخ الذى يريد التنبيه فيه ..
ثم يقوم كود بالعمل كل مثلا دقيقة ليختبر هل هذا الوقت مطابق للوقت الحالى أم لا .. وإذا تطابق ينفذ التنبيه
ولعمل كود يعمل كل دقيقة على خادم Linux يجب استخدام خدمة مع Server تسمى corn
" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------
ألا يوجد كود يعمل كل يوم وليس كل دقيقة وبـ الـ Apache???
بإمكانك مراجعة الرابط للتعلم عن المهام المجدولة
so DO IT ,DO IT right ,and DO IT right now...اقتباسYou live it or lie it
أشكرك xx0111xx
ولكن يس هذا ما أريده
اللهم أغثني وارحمني
السلام عليكم
حسب شرحك عن الشيء الذي تريدين تنفيذه ستحتاجين المهام المجدولة :rolleyes: ...
على كل سأبدأ معك من الأول
في البداية يجب أن يكون لديك جدول تخزنين فيه يوم التذكير reminding_date (والنظام سيقوم بالتذكير قبل يوم من يوم التذكير)
ومثلاً رقم المستخدم الذي سجل التذكير و نص التذكير
الآن يجب أن نقوم بكتابة ملف remind (يتم تنفيذه بشكل تلقائي كل يوم وهو ما سنبين كريقته بعد قليل)
يحوي كود يستعلم من هذا الجدول حيث يعيد جميع الأسطر التي تاريخ التذكير فيها يساوي تاريخ الغد
إذاً يجب أن نحصل في البداية على تاريخ الغد ونستطيع ذلك باستخدام الكود
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));حيث mktime تقوم بإعادة تاريخ يبنى على أساس قيم الساعة الدقيقة الثانية الشهر اليوم السنة الذين تم تمريرهم كوسطاء
ولدينا date تعيد التاريخ الحالي فإذا مررنا لها
m تعيد رقم الشهر الحالي (04 مثلاً)
d تعيد رقم اليوم الحالي(13 مثلاً)
Y رقم السنة الحالية(2007 مثلاً)
لذا لاستعادة تاريخ الغد نأخذ نفس الشهر الحالي واليوم الحالي مضافاً له واحد والسنة نفسها
الآن أصبح معنا تاريخ الغد وبالتالي نستعيد من الجدول جميع الحقول التي فيها reminding_date يساوي tomorrow
ونرسل لهم رسائل تذكير
بقيت لدينا مشكلة "متى سيتم تنفيذ هذا الملف remind ؟ وكيف؟"
لفعل ذلك يجب استخدام المهام المجدولة لتنفيذ هذا الملف مرة واحدة كل يوم.
بعد هذا الشرح أرجو أن يكون قد اتضح لك طريقة تنفيذ ما طلبتيه
وإذا كان لديك أي استفسار حول ما ورد سابقاً أو حول المهام المجدولة فأخبرينا وبالتوفيق إن شاء الله :) .
so DO IT ,DO IT right ,and DO IT right now...اقتباسYou live it or lie it
جزاك الله كل خير أخي xx0111xx :lol:
وأما عن المهام المجدولة : في الحقيقة قرأت الرابط الذي أضفته ولكن وللأسف :blink: لم أفهم :wacko:
فهل لك بشرح عن المهام المجدولة؟
"متى سيتم تنفيذ هذا الملف remind ؟ وكيف؟"
-waf
:unsure: :huh: :wacko: :(
حقيقي أأسف على التأخير في الرد
بالنسبة لموضوع المهام المجدولة:
المقصود هو جدولة مهمة( تعيين وقت محدد تنفذ فيه أتوماتيكياُ)
وفي حالتنا هذه المهمة هي تنفيذ صفحة الـ PHP التي تقوم بتفقد db وإرسال رسائل تذكير(لتكن remind.php)
ويمكننا أن نجدول مهمة باستخدام cron في linux أو tasks في win
(لكن عليك أولاً أن تتأكدي أن ذلك يمكن تنفيذه على موقعك)
أما إذا لم يكن المضيف يدعم إنشاء مهام مجدولة فيمكننا أن نلتف على ذلك:
مثلاً بتضمين الملف المراد تنفيذه في صفحة يتم زيارتها بشكل كبير في موقعك
وهكذا فعند كل طلب لهذه الصفحة سيتم التأكد من تواريخ التذكير وإرسال رسائل
لكن بهذه الطريقة قد يتم تنفيذ الملف وبالتالي إرسال التذكير أكثر من مرة
إذاً يجب تنفيذ(تضمين) الملف remind.php مرة واحدة على الأكثر كل يوم
بالتالي يجب أن نتأكد أولاً قبل التضمين إذا ما تم إرسال تذكير مسبقاً في هذا اليوم
فيجب علينا عند إرسال تذكير أن نقوم بتخزين شيء يدل أننا قمنا بالتذكير لهذا اليوم
ولنفرض أننا سنخزن ذلك في جدول في قاعدة بياناتنا (هذا الجدول سيحوي عمود واحد من نوع date وسطر واحد)
في الجدول قيمة وحيدة هي آخر تاريخ قمنا بالتذكير فيه
وقبل أن نقوم بالتضمين نختبر إن كان التاريخ الحالي أكبر من التاريخ المخزن في الجدول فإن كان كذلك نقوم بالتضمين
كما نقوم بتعديل هذا التاريخ المخزن في الجدول ليصبح تاريخ اليوم
إذاً الجدول لن نقوم بإدراج أي قيمة فيه سوى سطر واحد ندرجه في PHPMyAdmin مثلاُ بعد إنشاء الجدول
ويحوي قيمة سابقة لتاريخ اليوم ونقوم في الكود بتعديل هذه القيمة فقط دون إدراج أي أسطر
والكود الذي سيضمن الملف سيكون شبيه بالتالي:
mysql_connect('localhost');
mysql_select_db('db');
$res=mysql_query('select * from alert where last_remind_date<now()');
if(mysql_num_rows($res)){
include_once('remind.php');
mysql_query('update alert set last_remind_date=now()');
print 'remindings sent';
}وبذلك نضمن أن الكود المكتوب في remind.php لن ينفذ سوى مرة واحدة فقط في اليوم
لكن علينا أن نتذكر أن هذا لن يضمن أن الكود سينفذ (مرة واحدة على الأقل)
فالكود لن يتم تنفيذه إلا إذا تم طلب الصفحة التي تقوم بالتضمين مرة واحدة على الأقل وهو شيء غير مضمون دائماُ
على كل يمكنك أيضاُ أن تقومي أنت يدوياً بطلب الصفحة التي تقوم بالتذكير
أو جدولة مهمة (على حاسبك وليس على السيرفر) تقوم بطلب هذه الصفحة يومياً لضمان تنفيذها
أرجو أن الفكرة قد توضحت ولو قليلاً :)
وإذا كان لديك أي استفسار فسنأحاول ألا نطيل في الرد عليك إن شاء الله ;)
so DO IT ,DO IT right ,and DO IT right now...اقتباسYou live it or lie it
جزاك الله الف ألف ألف خير وكل خير الصراحة كفيت ووفيت :)
كيف إذا استخدمت tasks في win؟؟
واشكرك على تعاونك :lol:
يمكنك استخدام tasks في win وهو أمر سهل إن شاء الله:
فقط إذهبي إلى ابدأ>تشغيل (run) واكتبي tasks
تظهر لك نافذة المهام المجدولة tasks
اختاري ملف(file)>جديد(new)>مهمة مجدولة(scheduled task)
يتم إنشاء مهمة جديدة سميه بالاسم الذي ترغبين
ثم نقرتين عليها وفي حقل تشغيل(run) اكتبي مثلاً:
explorer http://localhost/path/page.php
وفي صفحة tab الـ schedule حددي الوقت الذي ترغبين فيه بتنفيذ هذه المهمة وكيفية تكرارها (يومي-أسبوعي)
وبذلك فإن استطعت جدولة تنفيذ الصفحة التي ترسل التذكير على السيرفر فإن مشكلة "متى سيتم تنفيذ هذا الملف remind ؟ وكيف؟"
تكون قد حلت إن شاء الله حيث تضمنين أن الـ db سيتم تفقدها وارسال رسائل تذكير مرة ومرة واحدة فقط في كل يوم :D .
so DO IT ,DO IT right ,and DO IT right now...اقتباسYou live it or lie it
شكرا جزيلا إخواني وجزيتم خيرا :)
بصراحة بذلتم مجهوداً كبيراً معي :rolleyes:
أسأل الله تعالى لكم التوفيق في الدنيا والجنة في الآخرة :)
هذا الموضوع مغلق.