Ti copio quasi tutto il codice cosi vedi bene :P
PS: è mezzo inglese e mezzo italiano XD
iniziamo con login.php:
Codice PHP:
$connect = mysql_connect("localhost", "root", "") or die("impossibile connettersi al server");
mysql_select_db("phplogin", $connect) or die("impossibile connettersi al server");
if($_POST['login']){ //se viene premuto il tasto "login"
if($_POST['username'] && $_POST['password']){ //campo di testo 'username' e campo di testo 'password'
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string(hash("sha512", $_POST['password']));
$domanda = "SELECT * FROM `users` WHERE `username` = '$username'";
$prova = mysql_query($domanda);
$user = mysql_fetch_array($prova);
if($user == "0"){
die('Questo utente non esiste! <li> <a href="registrazione.php"</a> Clicca qui per registrarti! </li><br>');
}
if($user['password'] != $password){
die('Hai sbagliato password');
}
session_start();
$_SESSION['user'] = $username; //qui ho sparato un po' di roba copiata da un video che ho visto su youtube...
$expiry = time() +24 * 60 *60; //in cui se non ho capito male usavano setcookie con time() per il logout automatico
$salt = hash("sha512", rand() . rand() . rand()); //dopo 1 mese. Ed usavano il comando $_COOKIE['c_user']
setcookie("c_user", hash("sha512", $username), $expiry); // e $_COOKIE['c_salt']... ma comunque non funzionava
setcookie("c_salt", $salt, $expiry);
$userID = $user['ID'];
mysqli_query("UPDATE 'users' SET 'salt' = $salt WHERE 'ID' = $userID");
die("Sei loggato come ''$username''... <li><a href='index.php'</a>Indietro</li>");
}
}
?>
Passiamo ora al validate.php:
Codice PHP:
<?php
$connect = mysql_connect("localhost", "root", "") or die("impossibile connettersi al server");
mysql_select_db("phplogin", $connect) or die("impossibile connettersi al server");
session_start();
If(!empty($_SESSION['user'])){ //magari devo mettere $_SESSION['username'] ?
$logged = TRUE;
}else{
$logged = false;
}
Ed infine la pagina che non dovrebbe vedersi, o meglio che non dovrebbe calcolare :P :
Codice PHP:
session_start();
require_once 'validate.php';
if($logged){
Codice calcolatrice
}else{
echo "Devi loggare";
}
Ora, se io in questa ultima parte metto if(!$logged)
lui non funzionerà mai
Se metto (come è ora) if($logged)
funziona sempre.