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

   
|!|

סגור את ההודעה
 
כלים לאשכול תצורת הצגה
ישן 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.
 
ישן 05-10-05, 11:38   # 2
WebProject
מ.תיכנות
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אשדוד
הודעות: 3,070
Send a message via Skype™ to WebProject

WebProject לא מחובר  

כל הכבוד על ההשקעה, נוסף לאינדקס מדריכים
__________________
כושר קרבי \ טיפים לגיבושים



פורטל רעל - צבא וכושר קרבי
 
ישן 05-10-05, 11:51   # 3
Tal
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: Israel
הודעות: 2,785

Tal לא מחובר  

תודה רותם
די בסיסי..:d
__________________
בברכה, טל
 
ישן 05-10-05, 13:03   # 4
ido_gold
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 92

ido_gold לא מחובר  

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

דרך אגב, צריך גם לקבוע את הid על auto incrisment... (או איך שלא כותבים את זה.)
__________________
עידו.
 
ישן 05-10-05, 13:06   # 5
Matchs
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: מרכז.
הודעות: 935

Matchs לא מחובר  

ציטוט:
נכתב במקור על ידי ido_gold
נראה לי רק מי שכבר יודע לעשות את זה יבין, אבל בכל זאת יפה על ההשקעה.

דרך אגב, צריך גם לקבוע את הid על auto incrisment... (או איך שלא כותבים את זה.)
זה רק במידה אם עושים פאנל ניהול, ועושים הוספת אדמין, אז הוא יוסיף את הID בצורה אוטומטית.
__________________
לפניות, אנא השאירו לי הודעה פרטית.
Matchs.
 
ישן 05-10-05, 13:20   # 6
ido_gold
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 92

ido_gold לא מחובר  

זה יותר במידה ועושים הרשמה, אז רוצים שכל משתמש יקבל Id עוקב.

אבל מה שווה התחברות בלי הרשמה? : )
__________________
עידו.
 
ישן 05-10-05, 14:00   # 7
Inuyasha
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 98

Inuyasha לא מחובר  

תודה, כל הכבוד על ההשקעה.
 
ישן 05-10-05, 23:20   # 8
Alon.R
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,435

Alon.R לא מחובר  

Parse error: parse error, unexpected '{' in /home/****/domains/********/public_html/*****/****/login.php on line 18

HELP PLZ!
 
ישן 05-10-05, 23:41   # 9
Pavel
WBD.co.il
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,264

Pavel לא מחובר  

כל הכבוד על ההשקעה רותם..
 
ישן 06-10-05, 00:04   # 10
somebody
A Al Alm Almo Almog!
תודה על תרומתך!
 
somebody's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: hadera CiTy
גיל: 33
הודעות: 4,005
שלח הודעה באמצעות MSN אל somebody

somebody לא מחובר  

כל הכבוד על ההשקע!
למרות שלא הבנתי כלום(אין לי מושג בphp!)
__________________
דוא"ל: almog.zimel ב ג'מייל נקודה קום
מסנג'ר: almog שטרודל freetopsite נקודה co נקודה il

 
סגור את ההודעה

חברים פעילים הצופים באשכול זה: 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. הזמן כעת הוא 13:04.

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