Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    79

    problema con il controllo per non far entrare in pagine riservate

    Salve ho bisogno di un controllo che prendendo una variabile di sessione $_SESSION['livello'] che se č 1 vuol dire che l utente loggato č un amministratore invece se č 2 siccome č un semplice utente non deve avere accesso ad alcune pagine, che potrebbe entrarci scrivendo il nome della pagina sull url, e ho fatto questo controllo qui :

    la funzione pagina_corrente() mi restituisce il nome della pagina ad esempio homepage.php e funziona bene il problema e che anche se non č un amministratore mi fa entrare cmq


    <?php

    $livello_login = $_SESSION['livello'];
    $pagina = pagina_corrente();
    $flag = 0;

    if ($livello_login != 1) { // se non č un amministratore
    if ($pagina != "homepage.php" or
    $pagina != "ticket.php")
    $flag = 1;

    if ($flag == 1) {
    @header("Location:../logout.php");
    }
    }
    ?>

  2. #2
    Codice PHP:
    $livello_login $_SESSION['livello'];
    $pagina pagina_corrente();
    $flag 0;

    if (
    $livello_login != 1) { // se non č un amministratore
    if ($pagina != "homepage.php" or 
    $pagina != "ticket.php"
    $flag 1;

    if (
    $flag == 1) {
    @
    header("Location:../logout.php");
    exit(); 
    # AGGIUNGI QUESTO!
    }

    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    79

    Grazie ma ancora non funziona

    ho modificato anche gli if anche se non cambia molto ma continua ad entrarmi nelle pagine riservate ho fatto cosi ora ma niente ancora, dove sbaglio??


    <?php
    $livello_login = $_SESSION['livello'];
    $pagina = pagina_corrente();
    $flag = 0;

    if ($livello_login != 1) { // se non č un amministratore
    if ($pagina != "homepage.php" or
    $pagina != "ticket.php")
    $flag = 1;
    }
    if ($flag == 1) {
    @header("Location:../logout.php");
    exit();
    }

    ?>

  4. #4
    non usi session_start();
    tecnicamente, quindi
    Codice PHP:
    if ($livello_login != 1) { // se non č un amministratore 
    dovrebbe darti sempre true, entrare nell'if ed anche questo
    Codice PHP:
    if ($pagina != "homepage.php" or $pagina != "ticket.php"
    dovrebbe essere sempre vero: la pagina sarą SEMPRE diversa da una delle due.

    A questo punto sospetto che
    Codice PHP:
    if ($flag == 1) { @header("Location:../logout.php"); exit(); 
    ti crei un problema. Se togli '@' che succede?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    79

    prima togliendo la @

    mi dava un errore tipo not sent header already etc... ora non mi da piu errore, ma il session start devo metterlo? ho provato ma neanche vą..eppure se mi stampo la variabile flag la variabile session e il nome della pagina mi stampa tutto corretto č quell header che non mi funziona perchč nell if ci entra.

  6. #6
    Ci entra perchč
    Codice PHP:
     if ($pagina != "homepage.php" or $pagina != "ticket.php"
    restituerą sempre true: pensaci bene.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    79

    si infatti

    ho messo and al posto di or e funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.