הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות > תכנות - מדריכים, code snippets

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 05-10-05, 11:28   # 1
Matchs
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: מרכז.
הודעות: 935

Matchs לא מחובר  

[מדריך] PHP - מערכת התחברות, רמה קלה עד בינונית.

זה פשוט עד בינוני.
מקווה שתפיקו ידע מהמדריך

אז בואו נתחיל, נגיד שאנחנו רוצים לעשות טבלה של 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) != &&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) != && 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.
__________________
לפניות, אנא השאירו לי הודעה פרטית.
Matchs.
 
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
מדריך למתקדמים, מדריך php, התחברות


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 10:06.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ