Visualizzazione risultati 1 fino 7 di 7

Discussione: [PHP] Sessioni e livelli user

  1. #1
    Guest

    Predefinito [PHP] Sessioni e livelli user

    Salve, ho un problema con le sessioni.
    Ho questo codice:
    Codice PHP:
    if($_SESSION['logged_in'] == true | $_SESSION['User_Level'] == 1 | $_SESSION['User_Level'] != 2 )
    {

    }else
    {
    Redirect("../member/members.php",0); // Funzione Mia.
    }
    Mi dite perchè anche se l'user level a 3, mi entra lo stesso ?

    Recupero l'User_Leve, tramite login e logged_in, tramite login.

    Però non capisco come mai non funziona entra chi unque.

    Ho fatto anche una ricerca, ma nel mio caso non capisco perchè non funzionano.

    Ho messo la template_header.php la session_start(); e dovrebbe funzionare
    invece no.

    Come mai?

    Grazie.
    Aspetto risposte.

  2. #2
    Guest

    Predefinito

    Intanto c'è una cosa che non torna:
    l'user è uaguale a 1 ma diverso da 2. E' ovvio che se è uguale a 1 è diverso da 2, no? Magari c'entra qualcosa quello!

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Prova così:

    Codice PHP:
    session_start();
    if(isset(
    $_SESSION['logged_in']) && isset($_SESSION['User_level']))
    {
    if((
    $_SESSION['logged_in'] == true) || ($_SESSION['User_Level'] == '1') || ($_SESSION['User_Level'] != '2'))
    {
    //qualcosa
    }
    else
    {
    Redirect("../member/members.php",0); // Funzione Mia.
    }
    }
    ..se l'user_level è 3 entra per questa condizione:
    Codice PHP:
    $_SESSION['User_Level'] != 2
    ...spiega quando deve entrare; come ha detto enkatar se è $_SESSION['User_level'] == 1 è ovvio che è != da 2

    ...forse, invece degli OR (||), vuoi mettere degli AND (&&)

    Ciao!
    Ultima modifica di alemoppo : 05-04-2010 alle ore 17.22.47

  4. #4
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Oltre a quello che ti ha detto enkatar (che è una condizione in più, inutile).
    Il problema è che | non è un operatore logico ma tutt'altro vedi i bitwise operators

    Comunque l'errore non è nemmeno quello :P, in quella condizione ci va un AND, controlla che l'utente sia loggato e che sia di 'livello' 1
    Codice PHP:
    if($_SESSION['logged_in'] == true && $_SESSION['User_Level'] == 1)

  5. #5
    Guest

    Predefinito

    ok, ragazzi , ho risolto:
    ecco la soluzione:

    Codice PHP:
    if($_SESSION['logged_in'] == true && $_SESSION['User_Level'] == 1)
    {
    if((
    $_SESSION['logged_in'] == true) || ($_SESSION['User_Level'] == '1') || ($_SESSION['User_Level'] != '2'))
    {
    //qualcosa
    }

    } else
    {
    Redirect("../member/members.php",0); // Funzione Mia.
    }
    E funziona tranquillamente. (spero).

    Grazie, mille.

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    no.. l'if dentro è inutile!...

    fai così:

    Codice PHP:
    if($_SESSION['logged_in'] == true && $_SESSION['User_Level'] == 1)
    {
    //qualcosa
    }
    else
    {
    Redirect("../member/members.php",0); // Funzione Mia.
    }
    ..e comunque lo metti all'inizio il session_start() ?

    e poi prima controlli se le variabili esistono con isset() ?
    Ultima modifica di alemoppo : 05-04-2010 alle ore 17.56.20

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    no.. l'if dentro è inutile!...

    fai così:

    Codice PHP:
    if($_SESSION['logged_in'] == true && $_SESSION['User_Level'] == 1)
    {
    //qualcosa
    }
    else
    {
    Redirect("../member/members.php",0); // Funzione Mia.
    }
    ha ok, provo

    EDIT
    ok, si funziona. grazie mille.
    Ultima modifica di musicanapoli : 05-04-2010 alle ore 22.07.29

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •