לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #7  
ישן 15-04-2005, 07:24
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 6 שנכתבה על ידי yahelb שמתחילה ב "שתי שאלות"

אז ככה:
בקשר לmktime - מה שהפונקציה עושה היא פשוט מחזירה את ה unix timestamp של תאריך אותו אתה מזין תוכה, בעוד ש time מחזירה את ה unix timestamp של הזמן העכשוי.
בקשר לשעון - PHP הינה שפת צד שרת, ולכן כל הפעולות שהיא עושה מתרחשות על השרת ואך ורק עליו. במידה ואתה רוצה לעשות שעון זז אצל המשתמש אתה כבר צריך עזרה משפות צד לקוח. בJS, לדוגמא, אפשר לעשות בדיוק את הדבר הבא. רק המלצה ממני: JS בעיקבות היותה שפת צד לקוח תקח את השעה כמוך מהלקוח עצמו. לפעמים קורה מצב בו אתה לא רוצה להסתמך על השעון של הלקוח ומעדיף להעניק את השעה בעצמך לפי שעון השרת. במידה כזאת, ורק כזאת, נכנס PHP לתמונה על-ידי כך שאתה פשוט מחדיר לתוך הקוד JS, באמצעות PHP, את הזמן המבוקש, ואז תוך כדי ריצת הדף בצד הלקוח ינוצל המידע הנ"ל בשביל להראות שעון עדכני ע"פ שעון השרת שלך.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 16-04-2005, 18:01
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 11 שנכתבה על ידי שימי שמתחילה ב "גם mktime לא מעניינת אותך"

אם לא אכפת לך שימי, אני אחזור לדברי המקוריים ואחלוק אליך. במידה ואתה רוצה לעשות שעון זז שיקבל את הזמן מהשרת ולא מהלקוח, אז ישנו הצורך לשלב בין PHP וJS.
השימוש ב unix timestamp הוא חשוב כי יש לך רק פעם אחת לעביר נתונים מ PHP לתוך קוד הJS, ואתה צריך לעביר נתונים ש JS תוכל להמשיך להתעסק איתם. unix timestamp הוא מושלם לעבודה מכיוון שהוא מחזיר שניות וכמובן שזה דבר גלובלי בכל שפות התיכנות.
אז דיברתי כבר עם yahelb וחשבתי שאת הפיתרון אולי עוד אנשים ירצו לראות, אולי זה יוכל לעזור או ללמד מישהו, עכשיו או בעתיד. כמובן שאני נגד לזרוק סתם שורות קוד לאוויר, אז אני אנסה להסביר כמה שאני יכול את הפעולות של הפונקציה.
קוד PHP:
 <html>
<
head>
<?
php
 $time
=gmmktime()%86400;
 echo <<<END
<script language="javascript">
var curdate=
$time;
function serverclock() {
 curdate++;
 if(curdate==86400)
  curdate=0;
 var time=curdate;
 var hours=Math.floor(time/3600);
 time=time%3600;
 var minutes=Math.floor(time/60);
 time=time%60;
 var seconds=time;
 if (minutes<10)
  minutes="0"+minutes;
 if (seconds<10)
  seconds="0"+seconds;
 var timestring=hours+":"+minutes+":"+seconds;
 document.getElementById("clock").innerHTML=timestring;
 setTimeout("serverclock()",1000);
}
</script> 
 END;
?>
</head>
<body onload="serverclock()">
<span id="clock"></span>
</body>
</html> 


דבר ראשון ישנו לשמור את הזמן ב unix timestamp לתוך משתנה, וכאן time נכנס לתמונה. אך מכיוון שאנחנו רוצים את הזמן המדוייק, ו time מחזירה זמן לפי GMT 0, יש צורך להשתמש ב gmmktime. אני שומר בתוך משתנה time את התשובה שהמודולס של ה unix timetsamp עם 86400 מחזיר. 86400 היינו מספר השניות ביממה והעיקרון של הפעולה הוא כדי לשמור אך ורק את מספר השניות מתחילת היום הנוכחי (מחצות). לאחר מכן מתצבעת הדפסה של הסקריפט ב JS ע"י PHP. שימוש ב END בתוך התגית echo מאפשר לרשום את כל הטקסט מבפנים ללא צורך לדאוג למרכאות. יותר על זה ניתן לקרוא ב php.net. מה שאני קורה לאחן מכן הוא שהזמן בשנית מתחילת היום מושם במשתנה JS, חשוב לציין, מחוץ לפונקציה בתור משתנה גלובלי. הפונקציה עצמה כבר מוציאה מאותו משתנה את מספר השעות, דקות ושניות, אך לא משנה את המשתנה המקורי. הוא משתנה רק בתחילת הקריאה כאשר מגדילים אותו באחד. מכיוון שהפונקציה קוראת לעצמה כל שניה, נוצר מצב שמספר השניות ביום מתעדכנות אוטומטית ביחד עם פעולת הסקריפט.
החלק הזה של התנאי:
קוד PHP:
 if(curdate==86400)
  
curdate=0

אמור לזהות מתי יום התחלף, ובמידה וזה קורה, הוא מאפס את מספר השניות ביום ומתחיל מהתחלה.

אם יש עוד שאלות הוא משהו, אתם מוזמנים לשאול. אם יש שאלות בקשר לקוד JS, אתם גם מוזמנים לשאול, פשוט לא היית בטוח אם זה קשור לפורום או לא. בתימצות הפעולות ב JS שבהן המשתמשתי מאוד דומות, ברובן, לדרך הפעולה בPHP, כך שאפשר להבין מה כל דבר עושה, ואיך מתבצע החישוב.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 16-04-2005, 19:48
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 13 שנכתבה על ידי שימי שמתחילה ב "אתה רשאי לחלוק"

אוקיי.. אז ככה:
1. אם הוא רוצה שזה יראה את הזמן על השרת שלו, אז זה מה שהוא קיבל. אם אתה גולש מאוסטרליה אין לזה שום קשר. זה לא הסקריפט פגום, אלא המטרה שלו שונה מהמטרה של הסקריפטים היותר מוכרים.
2. לא יודע. ספר לי, מה קורה? אם אתה מעריץ כזה גדול של מוזילה, אז האתר פועל מצויין גם דרך הדפדפן הזה. בקשר לדפדפנים אחרים לא בדקתי, אבל אני לא רואה סיבה לבעיה.
3. הוא ביקש עזרה, ואומנם רשמתי פה את כל הקוד, אך החלק של ה JS כבר הוסבר לו בפורום המתאים לכך והעיקרון של התשובה פה הייתה להראות את החלק של ה PHP בסיפור. אפילו אם זה קשור חלקית, זה עדיין קשור ואני לא רואה שום פסול בדבר.

אני אשמח לדעת מה לדעתך "לא היה צריך להעשות בצורה כזאת" אם יש לך כוח וזמן. מעבר לזה, אני עדיין לא רואה פה שום בעיה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 16-04-2005, 20:13
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 14 שנכתבה על ידי Fixxxer שמתחילה ב "אוקיי.. אז ככה: 1. אם הוא..."

1. אני לא בטוח שזה מה שהוא רוצה. יותר הגיוני שהוא חושב שזה מה שאפשר... השעון של המחשבים כיום נוטה להיות מכוון (בייחוד תודות לסנכרון זמן אוטומטי שיש כמעט בכל מערכת הפעלה), ולכן יש סיכוי הרבה יותר גבוה לקלוע לשעה של הגולש אם משתמשים בשעה מהמחשב שלו (אני אישית לא רואה איזה אינטרס יש לגולש לראות שעון הולך עם שעה לא מכוונת, אבל אולי זו בעייה אצלי...)

2. ה innerHTML אינו חלק מסטנדרט ה DOM. בעייתי משהו.

3. לא ידעתי שזה הוסבר לו בפורום אחר (היה קשה לנחש, כיוון שהוא כתב את האשכול פה, והאדם הסביר לא ינחש שהוא שלח את אותו אשכול כמה פעמים בכמה פורומים, שגם זה דבר אסור...)

"לא היה צריך לעשות" = היה צריך לעשות את הכל ב JS, כמו שעושה כל העולם ואשתו...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #21  
ישן 17-04-2005, 07:42
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
הבעייה עם ה validator היא שהוא מקשקש הרבה...
בתגובה להודעה מספר 20 שנכתבה על ידי Fixxxer שמתחילה ב "marquee לא נחשב תקין, וזאת רק..."

אני לא החלטתי לגבי הכנסת ה marquee לעיצוב האתר, וכנ"ל לא לגבי חלון המבזקים, שלא אני בניתי אותו (אני בניתי את כל שאר המערכת בערך...). שאר האתר אמור להיות XHTML.

להפנות אל ה validator של w3 זה יפה, אבל יש לו מנהג מגונה לקשקש. אודה לך אם תראה לי משהו באתר חוץ משני הדברים לעיל שהם שלא ממש באשמתי שהוא לא תקני בפועל. כי האתר פועל מצויין בכל דפדפן שגלשתי איתו באתר (בשונה מ...אהמ... הרבה אתרים ישראליים...).

לגבי ה innerHTML, בפעם האחרונה שבדקתי הוא לא עבד בשום דפדפן חוץ מ IE, אבל אם אתה אומר שזה השתנה...
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 03:08

הדף נוצר ב 0.10 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר