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

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

RS324 24-05-10 12:52

נניח שלאזור מסויים אתה רוצה לדעת לאיזה משתמשים יש הרשאה
(נניח שהאזור הוא 5)
אז אתה יכול להשתמש בפונקציה של MYSQL שנקראת FIND_IN_SET
שהיא מחפשת בדיוק בסטרינג כמו שלך (אבל מומלץ להשתמש ב פסיקים ולא בקו וגם להגדיר את השדה כ SET לשיפור ביצועים)

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

ASTeam 24-05-10 15:57

PHP קוד:

if( ! in_array("$the_variable",$the_array) ) 

    exit(
"Sorry, but your account is not allowed to enter this file"); 



SniR-S 27-05-10 20:24

משום מה זה לא עובד
PHP קוד:

function getUserPer($id) {
    
$query mysql_query("SELECT permissions FROM admins WHERE id = '$id'");
        
$result mysql_fetch_assoc($query);
        
$permissions $result['permissions'];
    
$permissions explode("|"$permissions);

    return 
$permissions;
}
    
$id $_COOKIE['id'];

function 
is_Access($access) {
    
$per getUserPer($id);
        if (
in_array($access$per)) {
            
$access "ok";
        } else {
            
$access "faild";
        }
    return 
$access;


וזה כן עובד:
PHP קוד:

function getUserPer($id) {
    
$query mysql_query("SELECT permissions FROM admins WHERE id = '$id'");
        
$result mysql_fetch_assoc($query);
        
$permissions $result['permissions'];
    
$permissions explode("|"$permissions);

    return 
$permissions;
}
    
$id $_COOKIE['id'];

function 
is_Access($access) {
    
$per = array('1''2''3''4''5''6''7''8''9''10');
        if (
in_array($access$per)) {
            
$access "ok";
        } else {
            
$access "faild";
        }
    return 
$access;


אין לי מושג למה, כנראה ה explode מוציא את זה בדרך אחרת.
מישהו יודע איפה הבעיה כאן ?

ASTeam 29-05-10 21:04

כי אין משתנה id בפונקציה השניה..
אם המשתנה id הוא חלק מהמחלקה אתה צריך לקרוא לו כך -
PHP קוד:

$this->id 

ואם הוא לא במחלקה, בזימון של הפונק' אתה צריך לכתוב אותו
(לשנות את
PHP קוד:

function is_Access($access) { 

ל -
PHP קוד:

[COLOR=#007700]function is_Access($access, $id) { [/COLOR]
[COLOR=#007700][/COLOR] 


SniR-S 31-05-10 15:20

זה לא מה שאני צריך..
הבעיה שלי היא זאת:
יש לי במסד שדה permissions שהנתון שמאוחסן בו הוא "1|2|3|4|5|6|7|8|9|10"
(זה יכול להיות גם אחרת, אבל זאת התבנית)
עכשיו אני צריך לייצא את זה כמערך שיצא בצורה כזאת:
PHP קוד:

$per = array('1''2''3''4''5''6''7''8''9''10'); 

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

RS324 31-05-10 16:41

תעשה PRINT $result['permissions'];
יש מצב שאתה נכשל בשאילתא עצמה והוא לא מחזיר לך כלום...

SniR-S 31-05-10 18:12

אין בעיה בשאילתא, לפני ה explode הוא מוציא לי את הנתונים שיש בשדה permissions
אחרי ה explode הוא כותב לי Array (מערך).


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

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