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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=49091)

ddd789 06-07-07 09:30

שאלה/עזרה php
 
שלום בנייתי מערכת התחברות והרשמה, עכשיו יש לי שאלה
אם אני יוצר במסד שדה בשם level ,ועכשיו יש 2 אפשריות
level 1 זה מתמש רגיל level 2 מנהל ,עכשיו אני רוצה לעשות
דף שבואו רק level 2 יוכל להכינס, זה אפשרי אם כן הסבירו לי בבקשה
תודה דני.

חיים 06-07-07 09:46

בטח שזה אפשרי תעשה שאילתה שתחפש אם המשתמש קיים ואם הוא מנהל...

ddd789 06-07-07 09:51

אני צריך עזרה בזה קצת שסבירו לי

תביאו מדריכים או משהוא

חיים 06-07-07 10:46

אז זה פשוט מאוד תעשה שדה is_admin ותעשה אותו מסוג tinyint ותקבע לו אורך(length) של 1 ואז פשוט אם המשתמש אדמין אז נערך שלו יהי 1 ואם לא הערך יהיה 0 ואז תעשה שאילתה כזאת:
PHP קוד:

mysql_query("SELECT * FROM users_table WHERE user='$user' AND pass='$pass' AND is_admin='1'"); 

ופשוט תציב בשאילתה הזאת את שם הטבלה שלך ותכין ערך של user,pass וככה תוציא את המידע ואז תבדוק ע"י הפונקצייה mysql_num_rows אם המספר השורות שיצאו בשאילתה שווה ל-1 אז תחבר אותו ואם לא אז תכתוב לו שגיעה שאין משתמש כזה....מקווה שהבנת ועזרתי לך

ddd789 06-07-07 11:05

לא הצלחתי אין איזה מדריך שמסביר לעומק על זה

Eli-Hai 06-07-07 11:22

תגדיר את השדה level במסד כ-tinyint שיהיה באורך של תו אחד בלבד.
0 = משתמש רגיל.
1 = מנהל-על.

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

קוד:

$username = strip_tags($_POST["username"]); // From form
$password = strip_tags($_POST["password"]); // From form

$query = mysql_query("SELECT * FROM `members` WHERE `username` = {$username} AND `password` = {$password} AND `level` = '1'"); // Select user details from database

mysql_real_escape_string($username); // Protect Query
mysql_real_escape_string($password); // Protect Query

$results = mysql_num_rows($query); // Check the details (0 = no user/level 1, 1 = user with level 1)

if( $results > 0 )
        // The user can see the protected page
else
        // Error for the user (wrong details/wrong level)

מקווה שיעבוד, לא נגעתי בPHP איזה 4 חודשים כבר...

ddd789 06-07-07 11:35

להכין טופס התחברות שיעבוד על הנותנים שנתתה לי בטופס הזה?

ערכיה הכנתי את זה
ציטוט:

<form name="login" action="log.php">
שם משתמש <input type="text" name="username"><br>
סיסמא <input type="password" name="password"><br>
<input type="submit" value="התחבר!">
</form>
ולא פועל

ערכיה
else
// Error for the user (wrong details/wrong level

בזה הבעיה
Parse error: syntax error, unexpected T_ELSE in

חיים 06-07-07 12:10

הנה לך קוד פאוד פשוט ונראה בסדר:
PHP קוד:

<?php
if(!isset($_COOKIE['username_admin'],$_COOKIE['password_admin']))
{
if(isset(
$_POST['submit'],$_GET['submited']))
{
 
$user htmlspecialchars($_POST['user']);
 
$pass md5(htmlspecialchars($_POST['pass']));
 
$users mysql_query("SELECT * FROM users WHERE user='$user' AND pass='$pass' AND level='1'");
 if(
mysql_num_rows($users)==1)
 {
  
setcookie("username_admin",$user);
  
setcookie("password_admin",md5($user));
  
header("Location: ".$_SERVER["PHP_SELF"]);
 }
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>?submited=true" method="post">
username: <input type="text" name="user" /><br />
password: <input type="password" name="pass" /><br />
<input type="submit" name="submit" value="התחבר" />
</form>
<?
}
else
{
 echo 
"ברוך הבא".$_COOKIE['username_admin'];
?>


ddd789 06-07-07 12:22

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

snirk 06-07-07 12:29

כול הקודים שנתנו לך פה עובדים מצויין ובנויים נכון, אתה רק צריך לדעת איפה ואיך לשלב אותם במערכת.
אז אל תגיד על כול קוד "לא עובד" .
לדוגמא: הדבר הכי פשוט בphp ובסיסי .
משפט else ,
"else
// Error for the user (wrong details/wrong level

בזה הבעיה
Parse error: syntax error, unexpected T_ELSE in"
אתה יודע למה הבעיה? כי ממתי else נשאר פתוח? אתה לא חושב שצריך לסגור אותו אולי ? } ?

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


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

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