Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Login-Logout. Alcuni consigli e chiarimenti.

    Ciao a tutti, da un pò di giorni sto provando uno script, per proteggere alcume pagine mediante una password, lo script in questione è stato scaricato dal sito: php-fre, in particolare al seguente indirizzo: clicca qui .

    Vorrei porre alcune domande, per comprendere meglio lo scrip e cercare di imparare qualcosa di nuovo:

    1) Ho notato che dopo un certo tempo (abbastanza breve) scade la sezione e bisogna rieffettuare il Login, è possibile aumentare questo tempo??

    2)Nelle pagine protette vi è il seguente codice:
    -------------------------------------------------------------------------
    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");

    list($status, $user) = auth_get_status();

    if($status == AUTH_LOGGED){
    $msg = 'Contenuto della pagina';
    }else
    $msg = 'Non hai i diritti per visualizzare la pagina';
    ?>
    <html>
    <head>
    <title>Pagina quattro</title>
    </head>
    <body>
    <font color="red" size="5"><?=$msg;?></font>
    </body>
    </html>
    -------------------------------------------------------------------------
    Il quale permette la protezione della pagina in questione. Secondo il mio punto di vista, questo metodo non è molto comodo, poichè nel caso di pagine complesse (cioè con molto codice, HTML, PHp, Java ecc) la variabile $msg, sarebbe molto grande. Allora vi è un metodo alternativo per proteggere la pagina in questione??? .Ho notato in alcuni script, che usano un file esterno e che poi richiamano nella pagina da proteggere mediante la funzione include o require. Potete darmi qualche consiglio, per piacere???
    Ciao e grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    1) Questo tempo può essere aumentato. Ma devi avere in mano la gestione del server web. Non ricordo se la cosa va cambiata nel file php.ini o in httpd.conf (direi + il primo ma non sono proprio sicuro).

    2) Sono d'accordo con te.

    io solitamente faccio un file chiamato authenticate.inc.php

    codice:
    if ($_SESSION['logstatus']!=1) {
      $_SESSION['messaggio']="Non sei autorizzato a visitare questa area del sito.";  header("location:index.php?cmd=messaggio");
    }
    ?>
    e una di login

    codice:
    include('include/connect.inc.php');
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $sql = mysql_query("SELECT * FROM users WHERE username='$user' LIMIT 1");
    $sql_string = mysql_fetch_array($sql);
    $numrows = mysql_num_rows($sql);
    if($numrows != "0" && (md5($pass) == $sql_string["passwd"])) {
    $_SESSION['logstatus']="1";
    } else {
    $_SESSION['logstatus']="0";
    }
    header("location:index.php");

    Come puoi vedere se il login avviene correttamente la variabile di sessione logstatus verra impostata ad 1 altrimenti a zero.

    Tutto quello che dovrai fare sarà far partire la sessione con

    session_start() e includere il file authenticate.inc.php in ogni pagina da proteggere.

    ciao

  3. #3
    scusa se ti disturbo, ma devo creare due file e includerli nella pagina da proteggere???? oppure devo creare solo il primo di file e includerlo nella pagina da proteggere??

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    solo il primo, il secondo ti serve solo come action del form che passa lo user e la pass.

    ovviamente se verifichi lo stato di una variabile vuol dire che da qualche parte la setti

    ciao

  5. #5
    Lo so, sono un ossessione!!!!
    Il fatto è che sono alle prime armi e ho ancora tante cose da imparare, allora io ho fatto come tu mi hai consigliato, cioè:
    1) ho creato una pagina index.php dove vi è un form per l'immisone dei dati:
    -------------------------------------------------------
    <html>
    <head>
    <title>Home Page</title>
    </head>
    <body>
    <form action="login.php" method="post">
    <input type="text" name="user">
    <input type="password" name="pass">
    <input type="submit" name="action" value="login">
    </form>
    </body>
    </html>
    -------------------------------------------------------------
    La pagina login.php è la seguente:
    --------------------------------------------------------------------------
    <php
    include('include/config.php');
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $sql = mysql_query("SELECT * FROM users WHERE username='$user' LIMIT 1");
    $sql_string = mysql_fetch_array($sql);
    $numrows = mysql_num_rows($sql);
    if($numrows != "0" && (md5($pass) == $sql_string["passwd"])) {
    $_SESSION['logstatus']="1";
    } else {
    $_SESSION['logstatus']="0";
    }
    header("location:index.php");
    ?>
    --------------------------------------------------------------------------
    Ho creato la pagina authenticate.inc.php
    ------------------------------------------------------------------------
    <Php
    if ($_SESSION['logstatus']!=1) {
    $_SESSION['messaggio']="Non sei autorizzato a visitare questa area del sito."; header("location:index.php?cmd=messaggio");
    }
    ?>
    ------------------------------------------------------------------------
    Poi ho creato la pagina priva che ho chiamato privacy.php
    --------------------------------------------------------------------------
    <?php
    include_once("include/authenticate.inc.php");
    <html>
    <head>
    <title>Pagina quattro</title>
    </head>
    <body>


    PROVA</p>
    </body>
    </html>
    --------------------------------------------------------------------------
    gentilmente, potresti dirmi se questa è la strada giusta????
    Grazie e ciao

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da spiadadda
    <?php
    include_once("include/authenticate.inc.php");
    <html>
    <head>
    <title>Pagina quattro</title>
    </head>
    <body>


    PROVA</p>
    </body>
    </html>
    cosi al volo vedo che non hai chiuso il tag php e questo ti creerà un errore.

    quindi chiudi il tag prima di <html>

    per il resto, prova e se hai errori chiedi ancora.

    Io ho dato un po' di cose per scontate:

    1. devi avere una tabella di database che contenga gli utenti.
    2. il file config.inc.php contiene i dati per la connessione al database.
    3. Questa connessione deve essere eseguita, altrimenti otterrai un errore sulla query.

    i file che uso per la connessione sono cosi formati:

    config.inc.php
    codice:
    <?php
    //parametri del database
    $db_host="xxx.xxx.xxx.xxx"; //indirizzo ip del server db
    $db_user="user"; //user del db
    $db_password="pass"; // pass del db
    $db_name="nome del db";
    ?>
    e il file connect.inc.php
    codice:
    <?
    session_start();
    include('include/config.inc.php');
    $db = mysql_connect($db_host,$db_user,$db_password);
    if ($db==false){
    $_SESSION['messaggio']="ERRORE NELLA CONNESSIONE AL DATABASE!!!"; 
    header("Location: index.php?messaggio");
    }
    $selezione=mysql_select_db($db_name, $db);
    if ($selezione==false){
    $_SESSION['messaggio']="ERRORE NELLA SELEZIONE DEL DATABASE!!!";
    header("Location:index.php?messaggio");
    }
    ?>
    comunque queste nozioni le trovi tra gli articoli di freephp.it, ti consiglio di leggerteli

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.