פורסם 2009 באפריל 2216 שנים שלום לכולם!התחלתי ללמוד לבד MYSQL ו PHP.סתם בשביל ללמוד אני בונה אתר ואני רוצה שהתוכן שלו יוצג רק למשתמשים רשומים.הרשימה של המשתמשים תהיה בטבלה בבסיס בנתונים.השאלה שלי היא, כדי שמשתמש יוכל להיכנס לחשבון שלו, הוא צריך גישה לבסיס נתונים, אז איך אני אמור להגדיר כל דף PHP? עם כניסה של ROOT לבסיס נתונים ואז לבצע בדיקה של שם המשתמש והססמא? ככה אמורים לעשות את זה? זה בטוח?הכוונה שלי היא שבכל עמוד אני צריך לשים את הקטע קוד הבא למשל?:<?php$user="root";$host="localhost";$password=12345";$database="test";$connection = mysql_connect($host,$user,$password);$db = mysql_select_db($database, $connection);?>ואז אני מבצע את האימות של השם משתמש והססמא?תודה לעונים.
פורסם 2009 באפריל 2216 שנים כן בגדול הרעיון נכון אבל עם כמה שינויים קטנים:- לאתר יש משתמש אחד שאיתו הוא מתחבר לבסיס הנתונים (מסיבות של אבטחה עדיף שזה לא יהיה root).- מקובל לשמור את השם והסיסמה בקובץ נפרד ולעשות לו include איפה שצריכים, כנ"ל הקוד של החיבור לבסיס הנתונים שחוזר על עצמו כל פעם.- יש רק דף כניסה אחד שבו המשתמש מכניס שם וסיסמה ובו צריך לבדוק מול בסיס הנתונים, ברגע שאישרת את המשתמש אתה שומר משתנה ב-session וככה אתה לא צריך לבדוק מול בסיס הנתונים כל פעם מחדש.- הדפים האחרים בודקים את המשתנה שנשמר ב-session, אם המשתמש כבר מאושר אז הם מציגים את תוכן הדף, אם לא אז הם מפנים את המשתמש לדף הכניסה.
פורסם 2009 באפריל 2216 שנים מחבר הבנתי תודה רבה. וטוב שאמרת לי לגבי ה SESSION כי זה באמת הרבה יותר הגיוני מאשר כל פעם לבדוק שם וססמא.אני אנסה ללמוד את העניין כי אני ממש לא יודע איך עושים את זה, תודה רבה!
פורסם 2009 באפריל 2316 שנים מחבר אוקיי קצת לא הבנתי את העניין עם ה SESSION.אתה יכול לתת לי דוגמא?למשל, ברגע שהמשתמש מתחבר, אני יעשה משתנה נגיד בשם $Connected שיהיה שווה ל- 1.ולשמור אותו ב SESSION, ואז בכל עמוד באתר אני אבדוק עם המשתנה הזה שווה ל- 1?ויש צורך בתחילת כל עמוד לאתחל את $Connected ב-0?, במילים אחרות, אם הוא לא התחבר, אני צריך גם לאחסן את CONNECTED עם הערך -0 ב SESSION כדי לבצע את ההפניה לעמוד החיבור?
פורסם 2009 באפריל 2416 שנים נגיד יש עמוד login.php שבוא אתה מקבל שם וסיסמה ובודק אותם מול בסיס הנתונים.אם הנתונים נכונים אתה שומר ערך ב-session משהו כזה:$_SESSION['connected']=1;ואז מפנה לדף הבא.בשאר הדפים בהתחלת דף אתה מוסיף קוד שבודק את המשתנה ב-session ופועל בהתאם:<?phpif(!isset($_SESSION['connected']) || $_SESSION['connected']!=1){ $_SESSION['connected']=0; //Redirect to login page header("Location: http://".$_SERVER['SERVER_NAME']."/login.php");}?>יכול להיות שתצטרך להוסיף בתחילת כל הדפים שלך גם session_start() זה תלוי בקונפיגורציה של php.
פורסם 2009 באפריל 2416 שנים מחבר אוקיי מצויין הבנתי ויישמתי.ואם כבר אנחנו בנושא הזה, סגירה של הדפדפן גורמת לאיבוד של ה SESSION, אם התחברתי למשל וסגרתי את הדפדפן, ונכנסתי שוב לאתר, אז אני לא מחובר יותר ואני צריך להתחבר מחדש.זה אמור להיות ככה? אני צריך להשתמש ב COOKIES כדי להשאר מחובר?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.