מונה
סקריפט שמנהל מונה (counter) המבוסס על עוגיות. המונה יתקדם ב-1 כל פעם שנכנסים לדף ואין מידע קודם שכבר ביקרו בדף זה. המונה לא יתקדם במקרה שיש עוגיה שמורה המסמנת כי היה ביקור קודם בדף. ניתן לשנות את זמן החיים של העוגיה (פרק הזמן שלאחריו כניסה תיחשב כחדשה, ללא ביקור קודם), וניתן להגדיר כי העוגיה תהיה קיימת כל עוד חלון הדפדפן לא נסגר. הסקריפט תומך בהדפסת המונה עפ"י תמונות של ספרות או בטקסט בגופן, בצבע ובגודל מוגדרים מראש.
הערות:
משתמש בקובץ שמכיל את מספר הכניסות. שימוש בעוגיות. ללא צורך בבסיס נתונים.
שימוש בפונקציות:
fclose() file_exists() filesize() fopen() fread() fwrite() getimagesize() isset() setcookie() str_pad() time()
counter.php - הקובץ הראשי של התוכנית. בקובץ זה מנוהל המונה ונוצרים העוגיות.
counter_conf.inc - קובץ ההגדרות של התוכנית הנכלל בראש הקובץ counter.php.
כדי להתקין את המונה, צריך ליצור קובץ טקסט לקריאה ולכתיבה (יש לדאוג שהרשאות הספריה בה שמור הקובץ הם הרשאות של קריאה וכתיבה). קובץ זה ישמור בתוכו את מספר הכניסות לדף מסויים או לאתר. את הקובץ נשאיר ריק מתוכן, התוכנית תכתוב לתוכו את מספר הכניסות העדכני. אפשר גם לכתוב את מספר הכניסות היישר לקובץ.
כעת נפתח את קובץ ההגדרות counter_conf.inc ונשנה את ההגדרות בהתאם לרצוי. $counter_file
מכיל את הדרך לקובץ המונה שיצרנו (הדרך תיהיה יחסית למיקום הדף שבו מכלילים את הסקריפט). $counter_style
יהיה אחת מן האפשרויות "image" או "text", ויגדיר את סוג ההצגה של המונה (תמונות או טקסט). $counter_initial
יהיה הערך ההתחלתי של המונה באם הקובץ ריק או לא קיים. $counter_digit
הוא מערך המכיל את המיקום של תמונות הספרות (יחסית למיקום הדף הראשי). ישנם עוד הגדרות שניתן לשנות ומוסברות בקובץ ההגדרות עצמו. במקום מיקום יחסי ניתן לכתוב את המיקום המלא ברשת, שזה יותר בטוח.
כעת כל שנותר הוא להשתמש במונה. כלול את קובץ המונה בדף שבו אתה מעוניין להשתמש בו בראש הדף לפני כל הדפסה לפלט, וזאת משום שהתוכנית משתמשת בעוגיות, ולא ניתן יהיה ליצור עוגיות אחרי שה-header-ים נשלחים, והמונה עלול לא לעבוד כמתוכנן. עצם ההכללה של קובץ המונה בדף לא מדפיסה את מספר הכניסות לדף. כדי להדפיס את מספר הכניסות יש לקרוא (במקום שבו רוצים להציג את המונה) לפונקציה CounterAutoIncrease(true)
, שמקדם את המונה במקרה הצורך ומדפיס לדפדפן את מספר הכניסות עפ"י ההגדרות שנקבעו, או לפונקציה CounterPrint()
שמדפיסה את מספר הכניסות הנוכחי ללא קידום של המונה. ניתן להשתמש בפונקציה CounterIncrease($num)
כדי לקדם את המונה ב-$num
כניסות, ובפונקציה CounterSetTo($num)
כדי לקבוע את מספר הכניסות ל-$num
(2 הפונקציות הללו לא מדפיסות פלט).
בתחילת הסקריפט אנו מייבאים את קובץ ההגדרות counter_conf.inc, וקובעים בהתחלה כי זהו ביקור ראשון בדף ($counter_visited=false
) ומאתחלים את מספר הכניסות עם הערך ההתחלתי של המונה.
<?php /* sets/updates the cookie */ if (
$counter_cookie_with)
//if cookies are enabled
{
$counter_visited=
isset(
$HTTP_COOKIE_VARS[
$counter_cookie_name]);
//checks if cookie exists
if (
$counter_cookie_time==
0)
//if we want to save the cookie just for the window
setcookie(
$counter_cookie_name,
"visited",
0);
//creates a cookie for this window only
else //if we set a period of cookie life time
setcookie(
$counter_cookie_name,
"visited",
time()+
$counter_cookie_time);
//creates/updates the cookie
}
?>
בקוד למעלה אנו בודקים אם אנו מבססים את המונה על עוגיות ($counter_cookie_with
), ואם כן אז בודקים האם קיימת עוגיה שמוגדר בה המשתנה בשם $counter_cookie_name
, ומעדכנים את $counter_visited
בהתאם (שים לב: אם לא משתמשים בעוגיות אז $counter_visited
יישאר false
תמיד). משתמשים ב-2 צורות שונות של יצירת עוגיות כאשר, זמן החיים של העוגיה הוא עד סגירת הדפדפן ($counter_cookie_time=0
), או זמן אחר הנקבע בקובץ ההגדרות ($counter_cookie_time>0
), אך בשתיהם אנו יוצרים עוגיה עם משתנה בשם $counter_cookie_name
המכיל את הערך "visited".
באמצעות הפונקציה file_exists() אנו בודקים אם הקובץ שמכיל את מספר הכניסות קיים. במקרה והקובץ לא קיים, התוכנית מנסה ליצור אותו ולשמור בו את הערך ההתחלתי של המונה. אם הקובץ קיים, אז פותחים אותו לקריאה וקוראים ממנו את מספר הכניסות כמחרוזת. את המחרוזת אנו הופכים למספר שלם ע"י המרה, ואם המספר קטן מ-0 אנו הופכים אותו לערך ההתחלתי של המונה. לבסוף אנו סוגרים את הקובץ.
CounterPrint($c=-1)
- פונקציה זו מדפיסה לדפדפן את המונה עם הערך $c
, או עם מספר הכניסות העדכני (כאשר $c=-1
). אם $c
הוא מספר שלילי אנו הופכים אותו למספר הכניסות העדכני שנקרא מתוך הקובץ. $sc
הוא אותו המספר בצורה של מחרוזת (משמתמשים בהמרה). אם מוגדר להדפיס עם אפסים מובילים ($counter_zero_lead=true
), אז אנו ממלאים את המחרוזת באפסים באורך שמוגדר ($counter_length
) בעזרת הפונקציה str_pad(). אם צורת המונה מוגדרת להיות מודפסת כתמונות של ספרות, אנו מוצאים את גודל התמונה באמצעות הפונקציה getimagesize(), שמחזיר מערך עם מידע על התמונה, ובאמצעות הלולאה אנו מדפיסים לדפדפן ספרה אחר ספרה. ואם מוגדר להציג את הדפדפן כטקסט, אז מדפיסים את המחרוזת $sc
בפונט, בצבע ובגודל שהוגדרו.
CounterIncrease($num=1)
- פונקציה זו מקדמת את המונה ב-$num
כניסות, ושומרת את הערך החדש בקובץ המונה. פותחים את קובץ המונה לכתיבה, ובמקרה של שגיאה או תקלה בפתיחת הקובץ מודפסת הודעת שגיאה. מקדמים את מספר הכניסות ב-$num
, וכותבים את הערך החדש בקובץ המונה. סוגרים את הקובץ ומשנים את הדגל של ביקור בדף לאמת ($counter_visited=true
).
CounterSetTo($c=-1)
- פונקציה זו מעדכנת את מספר הכניסות שבקובץ למספר $c
או לערך ההתחלתי של המונה (כאשר $c=-1
). פונקציה זו עובדת בצורה דומה לפונקציה CounterIncrease()
, רק שכאן היא שומרת ערך אחר.
CounterAutoIncrease($print=false)
- פונקציה זו מקדמת את המונה ב-1 במידה וזו כניסה חדשה לדף, ובנוסף מדפיסה את המונה לדפדפן כאשר $print=true
. אם לא ביקרו בדף זה לפני כן (כאשר $counter_visited=false
), אז מקמדמים את מספר הכניסות ב-1 באמצעות הפונקציה CounterIncrease()
. ואם $print=true
, אז מדפיסים את המונה לדפדפן באמצעות הפונקציה CounterPrint()
.
המונה אינו עובד | 03-12-03 04:01 ליאת | #745 |
| שיניתי את תמונת המונה ל GLOW
וב-
$counter_initial=12257
במקום 1 רשמתי את מס' המונה שכרגע יש לי כבר
אך זה לא עובד וגם לא מופיע בכלל באתר,
הכין עליי למקם את הקוד ומה עשיתי לא בסדר? |
|
מיקום הקוד | 03-12-03 12:00 אלי חן (מנהל) | #758 |
| הקוד צריך לבוא בתחילת הסקריפט, לפני שליחת ה headers (לפני שליחת פלט למסך). הסיבה לכך היא כי משתמשים ב COOKIE... |
|
שאלה | 07-12-03 01:00 אבי | #934 |
| ("כלול את קובץ המונה בדף שבו אתה מעוניין להשתמש ")
אני רוצה להשתמש במונה בדף Html
איך בדיוק אני כולל את המונה בתחילת הקובץ? עם איזה קוד? |
|
לכלול את הקובץ? | 07-12-03 07:01 אלי חן (מנהל) | #963 |
| עושים זאת באמצעות include כך:
include "counter.php";
תדאג לכלול את הקובץ לפני שליחת ה-headers, אחרת תקבל שגיאה. |
|
עזרה! | 07-12-03 10:02 ערן לוי | #985 |
| אתה יכול לרשום את כל הפקודות שאני אוכל לעשות רק "העתק" ו"הדבק" ל FRONT PAGE? בבקשה??! |
|
שאלה חשובה!!! | 02-11-03 05:00 Mew | #1297 |
| אני רוצה לגרום למונה להתאפס מדי יום, כשמגיעה השעה 00:00. לא הצלחתי לתכנת קוד כזה, האם אתה יכול לעזור לי בבקשה? |
|
הכנסתי את ההגדרות | 02-11-03 11:00 מיכאל | #1315 |
| הכללתי את הקובץ בראש הדף
וביקשתי שידפיס לי את הערך של מספר המבקרים.
ללא תוצאות.
מה עושים? |
|
זה מופיע ישר אחרי ה include! | 02-11-03 17:01 עידן | #1327 |
| הוספתי והגדרתי, ובתחילת הדף רשמתי:
<? include 'counter.php' ?>
והכל עובד יפה, בלי שגיאות, אבל זה מופיע ישר במקום שהוספתי את זה, ואני לא רוצה שזה יופיע שם.
מה לעשות? |
|
יצירת path למונה | 08-12-04 08:00 דוד אזולאי | #1741 |
| אחרי שהורדתי את המונה,זה בא אם path שאליו כל המידע של המונה נשמר (זה מה שאני מבין מזה),
אבל מרוב שאני "חכם" הורדתי איזה תוכנה ורציתי למחוק אותב דרך "הוספה או הסרה של תוכניות" ולא יודע למה,כל התיקיה שלי נמחקה!
אז רציתי לדעת אם אפשר ליצור עוד path כמו שהיה
כשהורדתי את המונה.
זה נקרא cnt.dat כשהורדתי את זה,איך עושים את זה? |
|
איך עושים | 06-12-05 17:01 כהן חח | #2502 |
| ניסיתי לעשות שמתי שמגיעה השעה 12 בלילה המונה מתאפס
איך עושים את זה???
תודה לעוזרים |
|