Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Pagina che un utente non può vedere

    Quando un utente si logga nel mio sito inserisco il ruolo in sessione.
    Nelle pagine eseguo questo controllo:
    Codice PHP:
    if ($_SESSION['ruolo']=='admin')
     {
     echo 
    "puoi vedere tutto";
    } else
    {
    echo 
    "qui non puoi vedere nulla";

    sarebbe comunque "sicuro" se ad inizio pagina faccio un;
    Codice PHP:
    if !($_SESSION['ruolo']=='admin') {
    document.location 'home.php';

    Calcolando che le pagine che un utente normale non può vedere non le metto nemmeno nel menu, sarebbe solo una cosa di sicurezza e la implementerei più velocemente.

  2. #2
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Scusa ma il tuo codice è venuto formattato male non capisoco bene!

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Si! Grazie!
    Sonia

  4. #4
    Quote Originariamente inviata da Sonikag Visualizza il messaggio
    Codice PHP:
    if !($_SESSION['ruolo']=='admin') {
    document.location 'home.php';

    Questo NON è php: document.location è JavaScript, e pensare di proteggere qualcosa con un javascript è follia: significa che basta che io mi installi l'estensione web developer su Firefox e disabiliti js e ho oltrepassato la sicurezza...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Giusto!
    Utilizzerò
    Codice PHP:
    header("location: /nuova-pagina.php"); 
    Si tratta di pagine a cui gli utenti NON hanno link, ma voglio evitare che digitando l'url le raggiungano!

  6. #6
    devi mettere il controllo server side su ogni pagina che vuoi controllare

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    devi mettere il controllo server side su ogni pagina che vuoi controllare
    Il controllo era già server side, era il redirect a non esserlo...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    poi facce sape' come hai risolto

  9. #9
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Per non toccare il codice delle pagine che non devono essere viste (e che l'utente non possiede nemmeno i link ma non si sa mai) ho fatto un bell'include da piazzare prima del tag <html>
    Codice PHP:
    include "inc/soloadmin.php"
    e nel mio include
    Codice PHP:
    <?php
     
    if (isset($_SESSION['ruolo']) && $_SESSION['ruolo']!=='admin') {
    header("location: home.php");  
     }
    ?>
    ---
    Per completezza specifico che prima di quell'include ne ho uno che verifica sia stato fatto il login che a priori redireziona altrove chi non è loggato.

  10. #10
    Ok, ma non usare include per queste cose in cui devi essere certa: usa require, che blocca l'esecuzione se il file richiesto non dovesse essere reperibile.

    Attenzione anche al fatto che header:Location dev'essere fatto PRIMA che qualsiasi carattere sia stato mandato all'output quindi attenzione che nei file che includi non ci sia dell'output, nemmeno prima di <?php o dopo ?>.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.