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

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



  #1  
ישן 13-02-2005, 15:56
צלמית המשתמש של ABM
  ABM ABM אינו מחובר  
 
חבר מתאריך: 15.05.02
הודעות: 5,458
עזרה בעיה עם Session

יש לי 2 משתנים:
קוד PHP:
 $_SESSION['username']
$_SESSION['password'

שבשניהם אני שומר נתונים (שם משתמש וסיסמא) על משתמש שמחובר למערכת.

כשאני ניגש לעמוד עדכון פרטי משתמש ושולח את הטופס משום מה אני מאבד את התוכן שיש במשתנה שמכיל את הסיסמא.

ומה הבעיה פה? אולי יש פקודת השמה? אז זהו: אין שום פקודת השמה שאומרת למשל:
קוד PHP:
 $_SESSION['pass'] = "xyz"

כלומר, אני בכלל לא נוגע במשתנה הזה במהלך העבודה בעמוד שמעבד את הטופס.

דרך אגב, בכל העמודים שבהם אני עוסק יש בהתחלה:
קוד PHP:
 session_start(); 


אפילו ביצעתי בדיקה של תוכן המשתנים בהתחלה ובסוף העמוד שמעבד את המידע שמגיע מהטופס, ואכן בהתחלה 2 המשתנים מכילים את המידע שהם צריכים להכיל, ואילו בסוף המשתנה שמכיל את הסיסמא איבד את תוכנו והוא ריק.

מדוע זה קורה?

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 13-02-2005, 18:03
צלמית המשתמש של ABM
  ABM ABM אינו מחובר  
 
חבר מתאריך: 15.05.02
הודעות: 5,458
דקל..
בתגובה להודעה מספר 2 שנכתבה על ידי דקל שמתחילה ב "בלי עוד קצת קוד אי אפשר לעזור לך..."

א. אין שום בעיה עם ה-pass וה-password, זאת טעות בדוגמא. בקובץ המקורי יש רק pass ואין password.

ב. עשיתי את מה שאמרת לי לעשות, ואכן לפני זה רואים של-pass יש את הסיסמא, ולפני שזה מנתק בדקתי מה יש ופשוט רואים ש-pass ריק.

ג. לגבי קוד המקור: אני לא יכול לשתף אותו, מכיוון שהוא סודי, אבל אני מביא לך את כל הדברים שהמילה pass מוזכרת בהם באופן זה או אחר:
קוד PHP:
 $pass mysql_escape_string(strip_tags($_POST['pass'])); // קבלת הסיסמא החדשה מהמשתמש
$pass md5($pass); // אם המשתמש משנה את הסיסמא אז אני מצפין אותה
mysql_query("UPDATE tbl_user SET pass = '$pass'..."); // חלק מתוך שאילתא שעוסקת בעדכון המידע 

כפי שאתה נוכח לדעת, אין פה שום פקודת השמה.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 14-02-2005, 19:10
  דקל דקל אינו מחובר  
 
חבר מתאריך: 20.02.03
הודעות: 2,396
בנוגע להכרעה בעניין...
בתגובה להודעה מספר 9 שנכתבה על ידי ABM שמתחילה ב "טעות"

כל דף שבו רוצים להשתמש ב session חייב להכיל בתחילתו את הפונקציה ()session_start. הפונקציה (כפי שכבר נכתב) מאתחלת את הסשן. האיתחול פירושו- יצירת סשן חדש במידה ולא קיים. או אם קיים- יצירת "חיבור" לסשן הקיים והכנסת הנתונים השמורים בו למשתנה הגלובאלי SESSION_$.
לכל סשן ישנו מזהה מיוחד (session_id) אשר נוצר באמצעות הפונקציה md5 (כאשר ב php5 נוספה האפשרות לייצר את ה session_id באמצעות הפונקציה sha-1). המזהה מועבר מהלקוח לשרת באמצעות שורת הכתובת (GET) או באמצעות עוגיות (יותר נפוץ). קיימת גם אפשרות להשתמש בשיטת POST להעברת הנתונים, אולם היא אינה נפוצה. חשוב לשים לב שאם במהלך התיכנות יש הסתמכות על כך שהלקוח מאפשר עוגיות, אולם הוא אינו מאפשר - בכל כניסה לדף חדש השרת ייצר לאותו לקוח סשן חדש (כיוון שהוא יחפש את העוגיה עם הסשן הקיים, ומכיוון שלא קיימת עוגיה כזאת, הוא ייצור סשן חדש) ולכן מומלץ לעשות בדיקה, האם הלקוח מאפשר עוגיות או לא, וההמשך בהתאם...

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

בברכה, דקל
_____________________________________
"מתכנת זה אדם שפותר בעיה שעל קיומה לא ידעת, בדרך שאינך מבין"

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

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

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

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

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



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

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

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

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