Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    2

    pagina con accesso riservato a utenti registrati

    Buongiorno a tutti,
    ho caricato sul mio sito uno script di registrazione e login che funziona, ma quando cerco di creare pagine con contenuti solo per utenti loggati non 'legge' il login. ho utilizzato $_SESSION['logged_in'] = 1; per settare il login.

    il codice del login è:


    <?php
    include('config.php');
    include('header.php');
    //controlla se la sessione è già attiva e se si ritorna alla homepage
    if(isset($_SESSION['logged_in']))
    {
    header('Location: index.php');
    }
    $submit = isset($_POST['submit']) ? true : false;
    if($submit)
    {
    $error = array();
    if(!empty($_POST['username']) && !empty($_POST['psw']))
    {
    $select = $db->prepare("SELECT username, user_password FROM users WHERE username = :name AND user_password = sw");
    $select->execute(array(':name' => $_POST['username'], 'sw' => md5($_POST['psw'])));
    $row = $select->fetch(PDO::FETCH_ASSOC);
    if(!$row) $error[] = 'Login fallito ! Verifica se hai inserito correttamente username e password';
    }
    else $error[] = 'Per favore compila tutti i campi';

    // se tutto ok effettuo il login altrimenti stampo errori

    if(empty($error))
    {
    $_SESSION['logged_in'] = 1;
    $_SESSION['username'] = $row['username'];
    $_SESSION['password'] = $row['user_password'];
    //se abbiamo spuntato il campo ricordami creo il cookie
    if(isset($_POST['remember_me']))
    {
    $cookie_value = $row['username'].'|'. $row['user_password'];
    setcookie($cookie_name, $cookie_value, time() + $cookie_time, $cookie_path, $cookie_domain);
    }
    //reindirizza verso la homepage
    header('Location: index.php');
    }
    else
    {
    echo '<h2>Sono presenti i seguenti errori</h2>';
    foreach ($error as $e)
    {
    echo '<p>'.$e.'</p>';
    }
    }
    }
    ?>

    il codice per il contenuto riservato è:

    <!doctype html>
    <html>
    <head>


    </head>

    <body>
    <div id="box3">
    <p>
    Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do eiusmod tempor
    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
    exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
    officia deserunt mollit anim id est laborum.
    </p>
    </div>

    <br/><br/>
    <p>Alcuni Esercizi Svolti : </p>

    <?php

    if (isset($_SESSION['logged_in'] ))
    {
    // contenuto per utenti registrati
    echo '<p>puoi vedere</p>';
    }
    else
    {
    // contenuto per gli ospiti
    echo '<p> non puoi vedere</p>';
    }
    ?>

    <a href="index.php">Home</a>

    </body>
    </html>

    Ache se è un utente ha effettuato il login mostra solo la frase 'non puoi vedere'
    Qualcuno potrebbe indicarmi dove sbaglio? Non riesco proprio a capire come fare!
    Grazie mille a tutti in anticipo!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    All'inizio di ogni file in cui vuoi usare i dati in sessione devi mettere

    session_start();

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2018
    Messaggi
    2
    Hai ragione,adesso funziona!Grazie mille!!

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.