מה זה headers? | 03-12-02 21:01 גיל בר-טור | #94 |
| אני מנסה לכתוב קוד ולהשתמש בעוגיות..
ולא הבנתי מה הכונה להשתמש בהם לפני שנשלחים ה-headers?
וזו הבעיה העיקרית שנוצרת לי, אני בונה טופס שמקבל 3 פרטים מהמשתמש, ויוצר 3 עוגיות, כל עוגיה מכילה פרט אחד! הפרטים נשלחים ע"י טופס לדף שיוצר את העוגיות ומדפיס לאחר מכן
מהם ההדרים? |
|
headers | 03-12-02 21:01 אלי חן (מנהל) | #96 |
| headers הם פריטי מידע שנשלחים בין הדפדפן לשרת ומגדירים כיצד יש להשתמש בדף שנשלח.
ה-headers, כשמם כן הם, נשלחים בראש - לפני שתוכן הדף נשלח. לאחר שתוכן הדף מתחיל להישלח, אז לא ניתן לשלוח יותר headers (אפילו לא באמצע שליחת התוכן).
העוגיות הם סוג של headers, ולכן חייבים להישלח עם ה-headers לפני ששולחים את תוכן הדף. אם מנסים לשלוח header או לשמור עוגיה באמצע הפלט, אז מקבלים שגיאה - דאג לשלוח את ה-headers והעוגיות לפני תחילת הפלט. |
|
אז מה הבעיה בקוד הבא? | 03-12-02 21:01 גיל בר-טור | #97 |
| ישלי את הקוד דף הבא...
מה שגוי בו?
<html>
<head>
<title> hi </title>
</head>
<body>
<?php
setcookie("was_here","true",time()+60);
setcookie("name",$fullname,time()+60);
setcookie("e-mail",$email,time()+60);
if(!$_COOKIE["was_here"])
{
echo "Your name is: ".$_POST["user"]['f_name']." ".$_POST["user"]['l_name']." !<BR> ";
echo "Your Email is ".$_POST["user"]['e-mail']."<BR>";
}
?>
</body>
</html> |
|
הבעיה: שליחת עוגיות לאחר שליחת הפלט | 03-12-02 21:01 אלי חן (מנהל) | #98 |
| הבעיה בקוד שלך היא שאתה מנסה לשלוח עוגיות לאחר שהפלט נשלח. הפלט נשלח ברגע שאתה מדפיס משהו לפלט מ-PHP או כשמגיעים לקוד HTML.
במקרה שלך, הפלט התחיל מהשורה הראשונה: <html>
לפני שליחת הפלט, ה-headers כבר נשלחו, ולכן שליחת העוגיות במקרה שלך היא באמצע שליחת התוכן וזה יוצר שגיאה.
כדי לפתור את הבעיה העבר את 3 השורות של setcookie לבלוק PHP נפרד ב-*ראש* הדף, לפני קוד HTML כלשהו. |
|
עוגיות | 05-12-02 06:01 עפרי מרקוס | #156 |
| ההוראות שרשמתם לא עובדות לי.
הבעיה שלי היא שאכן ה-php מתרגם לי את פקודת setcookie ל-html, אבל כאשר אני מנסה לגשת לדף בעזרת ה-browser, לא נשלחת שום עוגיה אל המחשב שלי. ובמקום זאת מופיעה שורת הפקודה ב-html בראש העמוד.
מה עושים? |
|
תגובה: עוגיות | 05-12-02 08:00 אלי חן (מנהל) | #160 |
| מה זאת אומרת "מתרגמת לי את פקודת setcookie ל-html"??
הפקודה setcookie לא אמורה להוציא פלט html, אלא היא שולחת header נוסף לדפדפן בו היא מורה לו ליצור עוגיה.
אם אתה רואה את הפקודה setcookie בדף כפי שרשומה ב-PHP אז כנראה ש-PHP לא מותקן אצלך, או סיומת הסקריפט שלך לא 'php.'
אם אתה מקבל הודעת שגיאה בה רשום "headers already sent by..." אז אתה מנסה ליצור עוגיה לאחר שהפלט שלך כבר נשלח - ראה את התגובות הקודמות בדף זה. |
|
בעיות בעוגיות (תענו על זה בבקשה) | 05-12-02 10:02 איתי | #168 |
| <?php
if (!$_COOKIE["animescoil"])
{
setcookie("animescoil","entered.",time()+60);
$file = fopen("count2.txt","r+");
$counter2 = fread($file, filesize("count2.txt"));
fclose($file);
$counter2 +=1;
$file = fopen("count2.txt","w+");
fputs($file, $counter2);
fclose($file);
}
?>
עשיתי כאילו שכל דקה ימחק הקובץ עוגיה, אבל זה אפילו לא יוצר אותו
זה גם לא עובד אלכם באתר בדוגמא זה לא כותב... אבל קוקיס בכללי זה כותב... מה לעשותת? |
|
תגובה: בעיות בעוגיות | 05-12-02 10:02 אלי חן (מנהל) | #171 |
| לא נראה לי שיש לך בעיה בסקריפט.
לפי דעתי הבעיה שהצגת עם העוגיות נובעת מהגדרות הדפדפן שלך.. תוכל לשנות את הגדרות הדפדפן שלך או להשתמש ב-netscape ששם ברירת המחדל לא מגבילה עוגיות. [מאותה הסיבה הדוגמא באתר לא עובדת. בדקתי ב-Netscape וזה כן עובד. יכול להיות ש-IE מזהה את העוגיה כאילו היא באה מגורם שלישי ולכן חוסמת אותה]. |
|
תגובה: cookies | 06-12-02 00:02 אלי חן (מנהל) | #209 |
| הפונקציה setcookie לא מוציאה בכלל פלט של HTML! לכן אין לי מושג על מה אתה מדבר בכלל.. הפונקציה setcookie לא מוסיפה לך header בקוד ה-HTML אלא שולחת את ה-header בנפרד לפני שליחת קוד ה-HTML. ההתנהגות של הפונקציה שהזכרת לא מוכרת לי - מצטער.. |
|
תפוגה | 06-12-02 20:01 יובל | #274 |
| כתוב: time()+600
600 מה?
כתוב ב alt שזה בשניות.
אז כדי לעשות תאריך תפוגה של שנה צריך לכתוב
60*60*24*31*12?
אין משהו יותר קצר? |
|
תגובה: תפוגה | 06-12-02 21:02 אלי חן (מנהל) | #275 |
| בשנה יש 365 ימים, ביום יש 24 שעות, בשעה יש 60 דקות, בדקה יש 60 שניות. אז ככה:
365*24*60*60
חוץ מזה, תמיד תוכל לחשב את זה ולכתוב ערך מספרי: 31536000 שניות בשנה. |
|
יש אפשרות... | 05-12-03 02:01 Icel | #865 |
| להכניס יותר מערך אחד לעוגיה?
אולי להשתמש במערך? |
|
מערך בעוגייה | 05-12-03 09:00 אלי חן (מנהל) | #871 |
| כן, אפשר להכניס מערך לעוגיה.
זאת עושים ע"י מתן שם לעוגיה בצורה של מערך, למשל:
setcookie("cookie_array[one]","value1");
setcookie("cookie_array[two]","value2");
end examples |
|
עוגייה בלי תוקף?? | 10-12-03 04:01 תום | #1166 |
| יש אפשרות לא לשים expiration date ואז העוגייה תשאר לזמן בלתי-מוגבל?
או שהדבר יגרום לשגיאה?
תודה מראש! |
|
עוגיה בלי תוקף | 31-10-03 17:01 אלי חן (מנהל) | #1204 |
| אם לא מציינים מה זמן התוקף של העוגיה, אז PHP תשמור את העוגיה, כך שתיעלם כאשר סוגרים את הדפדפן (כמו Session). |
|
סתם שאלה | 02-12-04 05:01 גרגורי | #1422 |
| האם יש אפשר לעשות כך שהעוגיות שאני מגדיר יווצרו על השרת עצמו ולא במחשב של המשתמש? |
|
יש פיתרון | 04-12-04 07:01 טל חדד | #1537 |
| וזה ה Session כתוב בעמודים הבאים על זה |
|
שאלה... | 08-12-04 08:01 איתן בןאב | #1742 |
| זה כל מה שאפשר לעשו עם Cookies ?
איך זה עוזר לי לשלוח נתונים לעוגיות ?
איך אני עושה אם זה עוד דברים ? |
|
Notice: Undefined | 09-12-09 11:01 עידן ידגר | #2856 |
| כתבתי את הקוד, הכל עבד כמו שצריך, אבל הוא נותן לי הערה:
Notice: Undefined index: cookie in C:wampwwwlphp.php on line 2
אבל משם הוא ממשיך רגיל, רושם "העוגיה קיימת/נמחקה" וכו'.
גם כשהעתקתי את הקוד מכאן, הייתה אותה שגיאה..
מה הבעיה? |
|
לא משנה.. | 09-12-09 11:01 עידן ידגר | #2857 |
| הסתדרתי.. צריך לשים isset. |
|