Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Proteggere + pagine

  1. #1

    Proteggere + pagine

    Ciao a tutti, ho il seguente problema.
    Ho creato un accesso riservato

    Le istruzioni php per il controllo all'accesso sono le seguenti

    ...
    $sql = "SELECT * FROM clienti WHERE user = '$user' AND pass = '$pass'";
    $risultato= mysql_query ($sql);
    $numero = mysql_num_rows ($risultato);

    if ($numero == 1) {
    session_start();
    $_SESSION['login'] = "ok";
    header ("location: pagina6.php");
    }
    else ...

    a questo punto sulla nuova pagina6, ho messo il seguente codice.

    session_start();
    if ($_SESSION['login'] != "ok") {
    echo("..");
    }
    else {

    include ("../scheda_prog/all.php");
    }

    In questo caso lui chiama all.php. Il fatto è che all.php come pagina, avendo + di 100 righe di codice misto (html/php/js) diventa problematico da gestire con un'istruzione if.
    Di certo la strada migliore non è quella di mettere echo ("tutto il codice della pagina").

    Cerco di capire se esiste un'impostazione semplice per proteggere + pagine che hanno codice lungo misto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Ciao,

    $_SESSION['login'] = "ok";
    Io ho utilizzato una cosa simile, anzi uguale, l'unica differenza che la sessione la registro in una pagina di passaggio.

    Ho una pagina index dove eseguo il login e registro le sessioni
    session_start();
    session_register(VerificaLogin);


    Ho una pagina passaggio dove controllo password e utente, se questi sono corretti allora registro tutte le sessioni
    if($righe>=1){
    $VerificaLogin = "vabene";
    header("location: index2.php");
    }else
    {
    echo "<script language=javascript> alert('Utente o Password Errati.')</script> ";
    echo "<script language=javascript> document.location.href = \"index.php\"</script>";

    }
    ?>
    In tutte le altre pagine verifico la variabile $verificalogin, se questa non è registrata allora riporto alla pagina iniziale.

    Spero ti possa essere di aiuto.

    Ciao

  3. #3

    Ma il problema è proprio questo

    Il discorso è il seguente. Io ho diverse pagine da proteggere usando il controllo della variabile di sessione.
    Tornando allo script, se io metto questo controllo

    <?php
    session_start();
    if ($_SESSION['login'] != "ok") {
    include ("..");
    }
    else {

    include ("../scheda_prog/all.php");
    }
    ?>

    all.php è la pagina con tanto codice che viene chiamata.
    Se però io chiamo direttamente all.php, dato che non c'è un controllo di sessione, la pagina viene visualizzata.

    Ora in all.php la pagina ha codice misto, ci sono alcuni php che vengono chiamati per esempio su attributi textarea in html, ecc.
    Il fatto è che nella pagina all.php ho scritto molti elementi senza usare echo.

    Per farti un esempio...
    ho scritto <table border...> fuori dal codice php.

    Questo è un problema perché nella pagina, anche in assenza di regolare sessione, il codice html viene comunque visualizzato.

    Credo che l'unica soluzione sia quella di scrivere solo all'interno del codice php, quindi usando echo ("<table border...") per arrivare ad avere un controllo molto + agevole quando impiego le variabili di sessione.

  4. #4
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Inverti la logica di controllo d'accesso...

    Crei un file con questo codice:
    Codice PHP:
    if ($_SESSION['login'] != "ok")
        
    header("location:login.php"); 
    E lo includi all'inizio di tutte le pagine che devono essere protette.

    Può andare?
    Maddalena... Perché proprio Iacchetti!...

  5. #5
    Perfetto!
    Così volendo posso chiamarlo anche con l'include all'inizio delle pagine!

    Commettevo l'errore di continuare a ragionare su else, quando potevo impedirlo da if.


  6. #6
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    E' exactamente quelo ke te volevo dir! :metallica
    Maddalena... Perché proprio Iacchetti!...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Ok, se hai risolto va bene, forse non sono stato chiaro io nella spiegazione, però le pagine che ho con una pagina di passaggio mi permettono di fare il controllo su qualsiasi pagina, e devo per forza passare dalla prima pagina.

    Ciao

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.