giovedì 27 ottobre 2016

Come creare un'area riservata con il PHP (senza database)

In questo nuovo articolo vi spiegherò come metter su in pochi secondi un'area riservata per il vostro sito, usando il php e le sessioni, senza quindi aver bisogno di alcun database di supporto.

Questo semplice metodo, non sarà il massimo come sicurezza (salvare le password nel codice non è mai bello), ma è pratico e veloce... e soprattutto funziona :)


Come creare un'area riservata con il PHP senza usare il database


Per realizzare una semplice area riservata in php, ti bastano solo 3 file:
  • index.php
  • verifica.php
  • login.php

index.php è la pagina d'esempio, quella protetta da password.
verifica.php è lo script da includere in tutte le pagine che devono esser protette da password.
login.php... chettelodicoaffare (cit.).

Vediamo di analizzare il contenuto di ciascun file:

index.php

<?php include("verifica.php");?>
<html>
<head>
    <title>Area riservata</title>
</head>
<body>
Questo contenuto lo vedi solo da loggato!
<br />
<a href="login.php">Logout</a>
</body>
</html>


Nella prima riga c'è l'inclusione allo script php che fa il controllo che gli utenti possano accedere a questa pagina.
Il resto è semplice html, con l'aggiunta del tasto per fare il logout.


verifica.php

<?php
    session_start();
    if(trim($_SESSION["collegato"])!="si")
    {
        header("location: login.php");
        die("...Attendere, prego...");
    }
?>


Questo è il file php che verifica se l'utente ha attiva la sessione per poter navigare sul sito, in caso contrario si viene rispediti alla pagina di login.


login.php

<?php
    session_start();
    unset($_SESSION["collegato"]);
    $user=trim($_POST["username"]);
    $pwd=trim($_POST["password"]);
    $mex="";
    if($user!=""&&$pwd!="")
    {
        if ($user=="ciccio"&&$pwd=="bello")
        {
            $_SESSION["collegato"]="si";
            header("location: index.php");
            die("...Attendere, prego...");
        }
        else $mex="<br />Errore: Username o Password errate!<br /> <br />";
    }
?>
<html>
<head>
    <title>Area riservata</title>
</head>
<body>
<strong>Login</strong>
<br />
<?php if($mex!="") echo $mex;?>
<form method="post" action="login.php" enctype="multipart/form-data">
Username: <input type="Text" name="username" maxlength="20" size="10" />
<br />
Password: <input type="Password" name="password" maxlength="20" size="10" />
<br />
<input type="Submit" value="Entra" />
</form>
</body>
</html>


In questo esempio, la pagina di login fa anche da logout, in quanto quando un utente vi ci finisce, la session php viene azzerata.
Quindi abbiamo un semplice form html che chiede user e password, ed un controllo php, dove utente e password sono cablate nel codice.
Potrete quindi salvare in questo file tutte le user e le password degli utenti che possono accedere all'area riservata del vostro sito php.
Ovviamente, essendo password memorizzate in chiaro nel codice php, pur essendo al sicuro (salvo violazioni pesanti sul server), fossi in voi non ci salverei la vostra password della banca :)

Con questi 3 file avete quindi creato un'area riservata in php in un attimo.

Se volete aggiungere altre pagina protette da password (es. pagina2.php), basta aggiungere come prima riga di ogni pagina da proteggere, questo codice php:
<?php include("verifica.php");?>
Per avere così una rudimentale area protetta da password in php, senza l'ausilio di nessun database.

Un'ultima nota va fatta al tipo di accesso, ovvero tramite sessioni.
Questo vuol dire che basterà chiudere il browser per scollegarsi dal sito e non esser più loggati, tuttavia non dimenticatevi di aggiungere sempre un bel tasto logout, come ho fatto io in index.php.

Buon divertimento :)

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon