Ciao a tutti, ho una form di login, solo che non riesco a capire perchè non viene inizializzata la variabile di sessione. questa la form
Mi dareste una manocodice:<?php include('conndb.php'); // Includo lo script di connessione if($_POST) { effettua_login(); } else { mostra_form(); } function mostra_form() { // mostro un eventuale messaggio if(isset($_GET['msg'])) { echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />'; } ?> <!DOCTYPE html> <html > <head> <meta charset="UTF-8"> <title>Nuovo Documento</title> <link rel="stylesheet" href="css/style.css"> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src="js/index.js"></script> </head> <body> <div class="wrapper"> <div class="container"> <h1>Nuovo documento</h1> <form id="form_login" name = "form_login" "class="form" method="post" action=""> <input type="text" placeholder="Username" name="username"> <input type="password" placeholder="Password" name="password"> <button type="submit" id="login-button">Accedi</button> </form> </div> <ul class="bg-bubbles"> </ul> </div> </body> </html> <? } function effettua_login() { // recupero il nome e la password inseriti dall'utente $username = trim($_POST['username']); $password = trim($_POST['password']); // verifico se devo eliminare gli slash inseriti automaticamente da PHP if(get_magic_quotes_gpc()) { $username = stripslashes($username); $password = stripslashes($password); } // verifico la presenza dei campi obbligatori if(!$username || !$password) { $messaggio = urlencode("Non hai inserito il nome o la password"); header("location: $_SERVER[PHP_SELF]?msg=$messaggio"); exit; } // effettuo l'escape dei caratteri speciali per inserirli all'interno della query $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); // preparo ed invio la query $query = "SELECT * FROM utenti WHERE username = '$username' AND password = MD5('$password')"; $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } $record = mysql_fetch_array($result); if(!$record) { $messaggio = urlencode('Nome utente o password errati'); header("location: $_SERVER[PHP_SELF]?msg=$messaggio"); } else { session_start(); $_SESSION['id'] = $record['id']; $messaggio = urlencode('Login avvenuto con successo'); header("location: home.php"); } } ?>