Ricerca tra la vecchia roba

Login con Php

Posted: Maggio 13th, 2007 | Author: | Filed under: General | 5 Comments »

 Siccome mi sta capitando di spaccarmi il culo per fare un sito che incorpori Php+Ajax+liquidi organici vi passo il codice di una pagina semplice che sfrutta le sessioni in Php per ricordardi il fatto di essersi loggati: per approfondimenti leggere l’articolo di m3xican da cui mi sono ispirato

 

Di seguito il codice php


<?
        /*pagina modello per il login*/
        /*inspired by http://www.siforge.org/articles/2003/11/10-guida_sessioni_php.html*/
        $user = ‘packz’;
        $pass = ‘2b5c9bd0b3b5d112ed06e044733acef8’;
      


        /*vacci di sessione (prima di tag HTML)*/
        session_start();

        /*dichiarazione XML*/
        echo "<?xml version="1.0" encoding="UTF-8"?>";

        if( (isset($_POST[‘user’])) || (isset($_POST[‘pass’])) ){
                if( ($user == $_POST[‘user’]) && ($pass == md5($_POST[‘pass’])) ){
                        $_SESSION[‘user’] = $user;
                        $_SESSION[‘is_logged’] = 1;
                        $title = "login successfull";
                }else
                        $title = "login failed!!! try again";
        }else
                $title = "login";

                /*se è impostato il logout allora desetta le variabili e distrugge la sessione*/
                if(isset($_GET[‘logout’])){
                        $_SESSION = array();
                        session_destroy();
                }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
        <title><?echo $title ?></title>
        <link rel="stylesheet" href="index.css" type="text/css">
</head>
<body>

<?
        /*se non è settato user allora non siamo loggati!!!*/
        if(empty($_SESSION[‘is_logged’])){
                echo "<form id="login" method="POST" action="index.php">n
        <p>n
        <p>".$title."</p>
                t<b>user</b>n
                t<input type="text" name="user"/>n
        </p>n
        <p>n
                t<b>password</b>n
                t<input type="password" name="pass"/>n
        </p>n
        <p><input type="submit" value="log in"/></p>n
</form>n";
        }else{
                /*recuperiamo l’id di sessione*/
                        echo "Ok man sei loggato (<a href="index.php?logout">log out</a>)!!!n";
        }
?>
</body>
</html>

mentre qui il file index.css da inserire nella stessa directory del file precedente


form{
margin:auto;
margin-top:200px;
padding:20px;
width:300px;
-moz-border-radius:20px;
border:1px solid black;
background:#55f;
}

form b{
float:left;
width:100px;
}

form input{
border:1px solid black;
}

form input[type=’submit’]{
color:red;
background:#aaf;
-moz-border-radius:10px;
}

Le cose importanti da conoscere sono le funzioni session_start() e session_destroy(): la prima va inserita prima di qualunque tag HTML siccome usa l’header del’HTTP per trasportare le cosidette variabili di sessione, che da Php saranno disponibili tramite l’array globale $_SESSION in maniera analoga alle $_GET e $_POST; session_destroy() uccide le variabili di sessione. non sono stato molto esauriente, ma secondo la mia opinione un codice vale più di mille spiegazioni…

Buon divertimento!!!

P.S: dimenticavo, per riuscire a loggarsi bisogna inserire come password la parola ‘pikappa’ (che è stata encodata in md5 all’interno del file php per sicurezza ;-)).


5 Comments on “Login con Php”

  1. 1 simmese said at 12:20 pm on Luglio 28th, 2007:

    Bravo packz… Grazie per il posto sul login in Php.
    Sei sempre molto preciso e i tuoi post coprono quasi per intero lo scibile informatico… (Addirittura)

  2. 2 sunch1ld said at 4:13 pm on Gennaio 21st, 2008:

    cazzo sistema quei cazzo di apici in php che non funzionano le stringhe all’interno deglio echo cazzo publichi cose che non funzionano

  3. 3 packz said at 6:51 pm on Gennaio 21st, 2008:

    Stai calmo figliodelsole, per colpa di un baco di lifetype mi aveva mangiato gli slash (apici?), adesso dovrebbe andare… cazzo…

  4. 4 Luca said at 2:06 pm on Novembre 2nd, 2008:

    scusa ma cm faccio a cambiare la password di login? e come faccio ad entrare automaticamente in un’altra pagina quando ci si è loggati?
    grazie mille

  5. 5 packz said at 2:44 pm on Novembre 2nd, 2008:

    Ovviamente per cambiare la password siccome è hardcoded devi modificare la pagina; nulla ti vieta tuttavia di inserire una routine di controllo che prenda la password da un database.

    Per quanto riguarda la possibilità di avere il login che ti permetta di accedere a più pagine, ti conviene usare una unica pagina che richiama le altre tramite degli include a seconda di qualche variabile GET nella parte in cui c’è il codice

    }else{/*recuperiamo l’id di sessione*/
    echo “Ok man sei loggato (log out)!!!n”;
    }