הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] מערכת התחברות (https://hosts.co.il/forums/showthread.php?t=28334)

ofek_golan 08-08-06 20:43

אני עשיתי ככה בעבר
 
PHP קוד:

$level2 mysql_query("SELECT * FROM users WHERE username='$_POST[username]' AND password='$_POST[password] AND level = 2'");
ככה עשיתי ל3 רמות
2
,3,4
ואז עשיתי
if($level2 1) {
...



Elad-A 09-08-06 08:25

עשית רק אם הרמה שלו 2 הוא יצליח להתחבר תוריד את החלק הזה.

ofek_golan 09-08-06 08:48

אתה לא הבנת אותי למעלה בשאילתה כתוב AND LEVEL=2 ואז עשיתי אם השאילתה = TRUE=1

Light-Era.Net || Ronen 09-08-06 09:59

אפשר בבקשה לשאול מה מחזירה שאילתה SELECT במידה והיא לא מוצאת כלום ?
אני מחפש תשובה לזה דיי הרבה זמן כבר. =\

Alon.R 09-08-06 12:53

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

בשביל לעשות השוואה, בIF למשל... משתמשים ב== שאתה משתמש ב= אחד הוא מציב את המשתנה לערך שניסת להשוואות לו.

עכשיו ofek_golan אני באמת לא מבין... אני סתם מציע לך פה עזרה?

תעשה כזאת שאילתה...(אני מבין שאתה רוצה שיעשו בשבילך את העבודה אז הינה...)

PHP קוד:

$ch_query mysql_query("SELECT password,level FROM users WHERE username ='$_POST[username]'",$mysql_link);

$md5pass md5($_POST['password']);

$row_ch mysql_fetch_array($ch_query);

if(
mysql_num_rows($ch_query) === 0)
{
die(
"לא נמצא משתמש");
}

if(
$row_ch['password'] == $md5pass)
{

echo 
"הסיסמא נכונה!";

$user_level $row_ch['level'];

//עכשיו $user_level הוא הרמה של המשתמש.
}
else
{
die(
"הסיסמא לא נכונה");
}

switch(
$user_level)
{

//בודקים אם הוא ברמה 2, אם כן הוא מריץ את הקוד של הפאנל שמיוחס לרמה 2
case "2":
//Code Panel 2
break;

//בודקים אם הוא ברמה 3, אם כן הוא מריץ את הקוד של הפאנל שמיוחס לרמה 3
 
case "3":
 
//Code Panel 3
 
break;

//בודקים אם הוא ברמה 4, אם כן הוא מריץ את הקוד של הפאנל שמיוחס לרמה 4
 
case "4":
 
//Code Panel 4
 
break;


קיבלת את הקוד על מגש של כסף..

ofek_golan 09-08-06 14:13

למה עשית SELECT רק של לבל ופאססוורד?
עריכה עכשיו שמתי לב שרשמתי שווה אחר בIF אבל אצלי רמשתי 2 לא עשיתי העתק הדבק אלה רק מהראש ושחכתי קורה

sUP 09-08-06 14:47

למה לא לעשות ישר
ציטוט:

mysql_query("SELECT password,level FROM users WHERE username = '$_POST[username]' AND password = '$_POST[password]'",$mysql_link);
ולהצפין את הpassword לפני :|

ואז לא צריך לעשות סתם תנאי וישר mysql num rows

Alon.R 09-08-06 15:06

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

ציטוט:

נכתב במקור על ידי sUP
למה לא לעשות ישר


ולהצפין את הpassword לפני :|

ואז לא צריך לעשות סתם תנאי וישר mysql num rows

כי אז אתה לא יודע אם השם משתמש לא קיים או שהסיסמא לא נכונה או שהרמה לא מתאימה.
וגם אתה צריך לעשות בטופס שיהיה למשל SELECT BOX שיבחרו באיזה רמה המשתמש וזה טיפשי.

סתכל בDA, אתה לא בוחר רמה הוא מזהה באיזה רמה אתה ומחבר אותך לרמה העליונה ביותר שמורשה למשתמש שלך.

ofek_golan 09-08-06 16:59

יש לי את שם המשתמש אבל אני רוצה גם לבדוק אם הוא קיים...
למרות שהבנתי שזה לא חייב אבל אני צריך

Tomer 09-08-06 17:02

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

נעול.


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

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