• User

    si...avevo fatto qualche errore di battitiura qua e là...ora però mi resta sempre un dubbio...per proteggere una pagina....renderla privata, visualizzabile solo agli utenti registrati...inserisco a inizio pagina questo:
    [php]
    <?php
    // Includo la connessione al database
    require('#');
    // Se non stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: #');
    exit;
    }
    ?>
    [/php]
    ??????????????????????????????????????????????????????????????


  • ModSenior

    direi che dovrebbe andare in quel modo...


  • User

    grazie 1000! Gentilissimo e pazientissimo come sempre. grazie ancora.


  • ModSenior

    prego 😉


  • User

    scusa ancora...ma non riesco a farlo funzionare...la pagina non è protetta (se io scrivo il link nellla barra degli indirizzi si vede tranquillamente) Praticamente ho seguito la tua guida; nella tua guida la pagina "privata.php" corrisponde nel mio sito alla magina "materie.php" è questa è perfettamente protetta. All' interno della pagina "materie.php" ci sono diversi link...le pagine linkate sono sempre dentro il mio sito, ma in cartelle diverse... E non vengono protette inserendo la parte di codice scritta sopra.....cm posso fare???


  • User Attivo

    ciao potresti postare il codice che controlla l'utente?

    ciao


  • User

    dici la pagina di login??? certamente:
    [PHP]
    <?php
    // Includo la connessione al database
    require('config-clas.php');

    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
        
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
        
        // reindirizzo l'utente
        header('Location: materie.php');
        exit;
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
    

    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>

    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>
    [/PHP]


  • User Attivo

    @Ture_70 said:

    dici la pagina di login??? certamente:
    [php]
    <?php
    // Includo la connessione al database
    require('config-clas.php');

    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
    
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
    
        // reindirizzo l'utente
        header('Location: materie.php');
        exit;
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
    

    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>

    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>
    [/php]

    premetto che non sono una cima in php cmq
    dove fai la selec aspè che te lo scrivo
    non veeo session_start sopra!
    [PHP]
    // Controllo l'utente esiste
    ("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    //poi assegni ad una variabile il risultato
    $risultato=mysql_query($query)or die(bla bla..)
    if($dati=mysql_fetch_array($risultato,MYSQL_ASSOC))
    {
    $username=$dati['user'];
    $password=$dati['pwd'];
    $_SESSION['username']=isset($_POST['username']);
    $_SESSION['password']=isset($_POST['password']);
    $_SESSION['valid_time']=time();
    header('location:'.'../lo fai entrare.php');
    }
    else
    {
    $messaggio=urlencode("Username e/o Password errata");
    header('location:'.'../non fai entrare.php'.'?msg='.$messaggio);
    exit;
    }

    [/PHP]
    vedi se va

    ciao


  • User

    ma...il login mi funziona...mi entra tranquillamente nella pagina materie.php (che è protetta)...nella pagina materie.php sono linkate diverse pagine 8sempre del mio sito, ma in cartelle diverse) e praticamente vorrei sapere come fare per proteggere queste pagine....


  • User Attivo

    @Ture_70 said:

    ma...il login mi funziona...mi entra tranquillamente nella pagina materie.php (che è protetta)...nella pagina materie.php sono linkate diverse pagine 8sempre del mio sito, ma in cartelle diverse) e praticamente vorrei sapere come fare per proteggere queste pagine....


    prova a mettere nelle tue pagine che vuoi proteggere
    [PHP]
    if(!isset($_SESSION['username']))
    {
    $messaggio=urlencode("Ti consiglio di autenticarti");
    header('location:'.lo percorso.php'.'?msg='.$messaggio);
    exit;
    }
    [/PHP]

    mettendo sempre prima i file di connessione

    fammi sapere

    ciao


  • User

    "mettendo sempre prima i file di connessione"...cosa significa??? (scusa la mia ignoranza)


  • User Attivo

    @Ture_70 said:

    "mettendo sempre prima i file di connessione"...cosa significa??? (scusa la mia ignoranza)

    penso che tu abbia un file config oppure conn.php
    [PHP]
    require 'config.php';
    require 'connect.php';
    [/PHP]

    cmq prova pure senza e vedi che dice

    ciao


  • User

    si...ho un file config-clas.php


  • User

    è un pezzo di codice php giusto??? quindi nelle pagine metto questo:
    [php]
    require ('config-clas.php');
    [/php]

    il file config-clas.php si trova in una cartella, quindi dovrei mettere:
    [php]
    require ('indirizzo_del_file/config-clas.php');
    [/php]
    ???????????????????????????????????


  • User Attivo

    si il percorso deve essere giusto del file config
    ma hai già provato?

    non dovrebbe farti entrare anche scrivendolo nella barra dell'indirizzo


  • User

    no...ora provo...cmq già in anticipo ti dico grazie per l' interesse....ti faccio sapere tra 2 minuti...il tempo che lo faccio.


  • User

    mi dice questo:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /www/netsons.org/ture70/web/classe/chimica/orale_chimica.php on line 7


  • User

    praticamente da errore qui:
    [php]
    header('location:'.lo percorso.php'.'?msg='.$messaggio);
    [/php]

    al posto di "lo percorso" ho provato a inserire sia index.php sia orale_chimica.php ma da sempre lo stesso errore


  • User

    ok, risolto....(per sbaglio avevo cancellato un punto) però ora mi dà pagina completamente bianca...
    ho inserito il codice php a inizio pagina...prima di tutto....va bene???


  • User Attivo

    @Ture_70 said:

    praticamente da errore qui:
    [php]
    header('location:'.lo percorso.php'.'?msg='.$messaggio);
    [/php]

    al posto di "lo percorso" ho provato a inserire sia index.php sia orale_chimica.php ma da sempre lo stesso errore

    dovresti mettere il persorso giusto dove vuoi mandarlo

    ti scrivo la sintassi giusta
    [PHP]
    header('location:'.'watch/accept.php'.'?msg='.$messaggio);
    [/PHP]