זה פשוט עד בינוני.
מקווה שתפיקו ידע מהמדריך
אז בואו נתחיל, נגיד שאנחנו רוצים לעשות טבלה של users ?
אז נגדיר את השדות הבאים:
- id - אוטומטי, INT, ראשי.
- username - טקסט, עם הצפנה.
- password - טקסט, עם הצפנה.
- level - טקסט, ישמש לגישת המשתמש.
עכשיו, בוא נגדיר שהlevel המסויים שיהיה למישהו צריך להיות 2, בכדי שתהיה לו גישה.
אז מה נעשה ? ניצור את הטבלה, ונכניס ערך של משתמש אחד, לדוגמא:
- id - 1
- username - Rotem
- password - 1234 (in md5 or sha1)
- level - 2
יפה, עד כאן הכל ברור ? מה עשינו בעצם ? יצרנו טבלה עם הערכים: id, username, password, level.
עכשיו נגיע לחלק העיקרי, ההתחברות והיישום עצמו.
את הדף התחברות ב-HTML אני מאמין שתסתדרו ..
בוא נתחיל עם שני שאילתות פשוטות אשר מוציאות את שם המשתמש הסיסמא ואת הlevel, אני דווקא החלטתי להשתמש עם sha1 בהתחברות, עוד פרט חשוב לפני שאנחנו מתחילים, לקבוע את הpassword כשאתה מכניס את המידע כsha1(במקרה שלי)(!):
PHP קוד:
$username = $_POST['username'];
$password = $_POST['password'];
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$password = sha1($_POST['password']);
$query_of_user = mysql_query("SELECT * FROM users WHERE username = '{$username}' AND level_user = '2'") or exit(mysql_error());
$query_of_pass = mysql_query("SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' AND level_user = '2'") or exit(mysql_error());
אז מה עשינו פה בעצם ? לקחנו את המידע מדף הHTML (שדרך אגב, את השדה של היוזר שימו בשם username ואת הסיסמא כpassword), ועשינו שאילתה שמוציאה את פרטי המשתמשים, והאם הם נכונים.
חלק הבא, האימות עצמו, אנחנו בודקים האם הפרטים שווים ואו לא שווים למשתנים:
PHP קוד:
if (mysql_num_rows($query_of_user) != 0 &&mysql_num_rows($query_of_pass) != 0)
{
$details = mysql_fetch_array($query_of_user)
{
$id = $details["id"];
$username = $details["username"];
}
session_register('admin_area');
$_SESSION['admin_area'] = $id;
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=x\">";
}
הבדיקה הסתיימה, עכשיו אנחנו רוצים להכניס סיישן במידה והפרטים נכונים נכון ? אז הינה, אם הפרטים אכן נכונים, הוא ירשום את הסיישן: admin_area ויקבע אותו לID של המשתמש.
הלאה, האם הפרטים לא נכונים ? נעשה משפט else קטן:
PHP קוד:
else
{
echo "<script type=\"text/javascript\">window.alert(\"שגיאה: שם המשתמש ואו הסיסמא אינם נכונים!\"); history.go (-1);</script>";
}
וזהו. זה בעצם הקוד של ההתחברות והאימות, בשביל כל המתקשים, הינה הקוד הסופי:
PHP קוד:
$username = $_POST['username'];
$password = $_POST['password'];
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$password = sha1($_POST['password']);
$query_of_user = mysql_query("SELECT * FROM users WHERE username = '{$username}' AND level_user = '2'") or exit(mysql_error());
$query_of_pass = mysql_query("SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' AND level_user = '2'") or exit(mysql_error());
if (mysql_num_rows($query_of_user) != 0 && mysql_num_rows($query_of_pass) != 0)
{
$details = mysql_fetch_array($query_of_user)
{
$id = $details["id"];
$username = $details["username"];
}
session_register('admin_area');
$_SESSION['admin_area'] = $id;
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=x\">";
}
else
{
echo "<script type=\"text/javascript\">window.alert(\"שגיאה: שם המשתמש ואו הסיסמא אינם נכונים!\"); history.go (-1);</script>";
}
עכשיו בכדי שההתחברות תופעל, אז בדף שאתה רוצה נעשה דבר פשוט בעזרת משפט תנאי + isset לסיישן:
PHP קוד:
if(isset($_SESSION['admin_area']))
{
echo "תוכן הדף";
}
else
{
echo "אתה לא מחובר, סליחה!";
}
המדריך נכתב ע"י רותם וכל הזכויות שמורות © 2005.