funzione per ruoli..

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, come faccio fare una funzione partendo da quella che vi posto ora..

che posso scrivere if(isRole(1,2,3)) o if(isRole(1,2))

esempio

PHP:
if(isRole(1,2))
{
}


Vi posto il codice:
PHP:
function isRole( $id )
	{
		$query = mysql_query("SELECT `level_access` FROM `login` WHERE `intLoginID` = " .  $id  . "");
		
		if ( mysql_num_rows ( $query ) == 1 )
		{
			$row = mysql_fetch_array ( $query );
			
			if ( $row['level_access'] == 1 )
			{
				return TRUE;
			}
			else {
				return FALSE;
			}
		}
		else {
			return FALSE;
		}
	}

aspetto notizie.. e buona giornata..

grazie mille.
 
:D io la implementerei cosi
PHP:
function isRole( $id ) 
    {  
          $v = 0;
       //$ids diventa un array suddiviso dalle ,
         $ids = explode(',',$id);
       //cicliamo ogni elemento di $ids
          foreach($ids as $ix){
        $query = mysql_query("SELECT `level_access` FROM `login` WHERE `intLoginID` = " .  (int)$ix  . ""); 
         //conteggio risultati
        if ( mysql_num_rows ( $query ) == 1 ) {
             $row = mysql_fetch_array($query);
            if ( $row['level_access'] == 1 ) 
             //se tutti i controlli risultano corretti aumentiamo $v
                $v++;
          }
     } 
  //se $v è equivalente al numero degli elementi ciclati significa che tutti quanti hanno superato i controlli e quindi ritorna vero sennò falso
    return ($v == count($ids)) ? true : false;
}
if(isRole('1,2,3')) echo 'LOL';

Oppure una soluzione ancora migliore sarebbe utilizzare un array

PHP:
function isRole( $id ) 
    {  
          $v = 0;
       //cicliamo ogni elemento di $id
          foreach($id as $ix){
        $query = mysql_query("SELECT `level_access` FROM `login` WHERE `intLoginID` = " .  (int)$ix  . ""); 
         //conteggio risultati
        if ( mysql_num_rows ( $query ) == 1 ) {
             $row = mysql_fetch_array($query);
            if ( $row['level_access'] == 1 ) 
             //se tutti i controlli risultano corretti aumentiamo $v
                $v++;
          }
     } 
  //se $v è equivalente al numero degli elementi ciclati significa che tutti quanti hanno superato i controlli e quindi ritorna vero sennò falso
    return ($v == count($id)) ? true : false;
}
//array degli id che verrà ciclato
$lol = array();
$lol[] = 'id';
$lol[] = 'id2';
$lol[] = 'altroid';
if(isRole($lol)) echo 'LOL';
 
scusa moltissimo.. ma non è cosi.. mi son scordato di dire...

che la funzione che uso deve essere cosi il richiamo della funzione:

isadmin ( $_SESSION['id_utente'] )
{
qui contenuto dell'amministratore..
}

mi fai questo favore grande se mi metti che posso mettere anche la session id_utente e acchiappa il ruolo dal campo "level_access" del database..

vedi la funzione che ho postato prima..

ti ringrazio moltissimo e scusa per questa dimenticanza.
grazie buona serata.
 
scusa moltissimo.. ma non è cosi.. mi son scordato di dire...

che la funzione che uso deve essere cosi il richiamo della funzione:

isadmin ( $_SESSION['id_utente'] )
{
qui contenuto dell'amministratore..
}

mi fai questo favore grande se mi metti che posso mettere anche la session id_utente e acchiappa il ruolo dal campo "level_access" del database..

vedi la funzione che ho postato prima..

ti ringrazio moltissimo e scusa per questa dimenticanza.
grazie buona serata.
Ma quindi devi gestire solo una variabile o piu elementi? :confused:
 
più elementi..

più meno dovrebbe essere cosi:

PHP:
isadmin ($_SESSION['id_utente'],1,2)
{
qui contenuto dell'amministratore..
}

però non la so fare io..

mi protesti aiutarmi?

grazie mille. e buona serata.
 
Fai semplicemente cosi utilizzando il primo script che ti ho postato :)
PHP:
if(isadmin($_SESSION['id_utente'].',1,2'))
{ 
//qui contenuto dell'amministratore.. 
}
 
Fai semplicemente cosi utilizzando il primo script che ti ho postato :)
PHP:
if(isadmin($_SESSION['id_utente'].',1,2'))
{ 
//qui contenuto dell'amministratore.. 
}

ciao, ok.. però non funziona come deve funzionare..

io prima facevo cosi isadmin($_session["id_utente"])) etc..

perché qua devo incasinarmi mettendo il ! davanti e viceversa ?

c'è un modo da sistemare questa cosa?

che mi faccia come faceva la mia funziona che avevo preso da internet..

ora se inserisco cosi.
PHP:
if (isRole ($_SESSION['id_utente'],1,2))
						{
						?>
						<a href="index.php?m=foto">Foto</a>
						<?php } ?>
non vedo foto essendo moderatore..inve come admin .. vedo tutto.

come mai?
grazie mille. e buona notte.
 
percaso è questo pezzo di codice che non mi fa vedere quando sono moderatore:

PHP:
 if ( mysql_num_rows ( $query ) == 1 ) {
             $row = mysql_fetch_array($query);
            if ( $row['level_access'] == 1 ) 
             //se tutti i controlli risultano corretti aumentiamo $v
                $v++;
          }

perché if row controlla se l'level acess è 1 quindi e admin?
giusto?
come si può sistemare?

grazie mille.
 
percaso è questo pezzo di codice che non mi fa vedere quando sono moderatore:

PHP:
 if ( mysql_num_rows ( $query ) == 1 ) {
             $row = mysql_fetch_array($query);
            if ( $row['level_access'] == 1 ) 
             //se tutti i controlli risultano corretti aumentiamo $v
                $v++;
          }

perché if row controlla se l'level acess è 1 quindi e admin?
giusto?
come si può sistemare?

grazie mille.
Beh se mod ha come valore 2 nel level_access ad esempio basta fare cosi
PHP:
 if ( mysql_num_rows ( $query ) == 1 ) {
             $row = mysql_fetch_array($query);
            if ( $row['level_access'] == 1 || $row['level_access'] == 2) 
             //se tutti i controlli risultano corretti aumentiamo $v
                $v++;
          }
 
no , non funziona nemmeno cosi...

come mai..

perché il moderatore vede anche quello dell'admin .. e non so come mai..

idee?

grazie mille.
 
no , non funziona nemmeno cosi...

come mai..

perché il moderatore vede anche quello dell'admin .. e non so come mai..

idee?

grazie mille.
:incazz2: si puo sapere qual'è la richiesta finale? Prima chiedi che sia visibile anche ai moderatori oltre che agli admin
poi non vuoi piu averla visibile per i mod ma solo per gli admin? wtf? :confused:

Non è per essere scortese è solo per sapere cos'è che vuoi di preciso e di non contraddire le richieste per favore
 
Ultima modifica:
ho risolto.. alla vecchia maniera ed ho messo $_SESSION = = 1 || $_SESSION == 2 o solo $_SESSION == 1.

e cosi funziona come voglio io..

ti ringrazio molto e scusa se ti ho fatto incavolare..

buona giornata..

grazie mille.
 

Discussioni simili