Ciao ragazzi,
Ormai armeggio con il PHP da un po' di tempo e sto cercando di creare un buon sistema di login, sia con session che con cookie, per realizzare un social network. Data l'importanza del progetto, vorrei essere molto pulito e funzionale nel codice. Secondo voi così può andare?
Login:
Codice PHP:
if ($act == 'login') //LOGIN - L'utente entra con il suo account privato nel sito
{
$user = $_POST['username'];
$pass = $_POST['password'];
$ck_ricordami = $_POST['ck_ricordami'];
include 'config.php';
$pass_save = md5($pass);
// Mi connetto al db
$db = mysql_connect("$hostname_db","$username_db","$password_db") or die("Connessione non riuscita: " . mysql_error());
mysql_select_db("$database_db", $db);
$query = "SELECT * FROM utenti WHERE user_utente = '$user' AND pass_utente = '$pass_save'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if ($row)
{
if ($ck_ricordami)
{
setcookie("ricordami", "ricordami", time()+2592000);
setcookie("user_utente", "$user", time()+2592000);
setcookie("id_utente", $row['id_utente'], time()+2592000);
if($row['grado_utente'] == '1')
{setcookie("grado_utente", "1", time()+2592000);}
mysql_close($db);
header("location: index.php");
}
else
{
session_start();
$_SESSION['ricordami'] = 'si';
$_SESSION['user_utente'] = $user;
$_SESSION['id_utente'] = $row['id_utente'];
if($row['grado_utente'] == '1')
{$_SESSION['grado_utente'] = '1';}
mysql_close($db);
header("location: index.php");
}
}
else
{
mysql_close($db);
echo "Dati non corretti.";
}
}
Inoltre, purtroppo, quando richiamo da un include l'header, non mi visualizza correttamente i dati: dove sbaglio? Allego anche questo file.
Codice PHP:
<?php
session_start();
$ck_ricordami = $_COOKIE['ricordami'];
$session_ricordami = $_SESSION['ricordami'];
if ($ck_ricordami != 'si') {
if ($session_ricordami == 'si') {
$highlight == "si";
$id = $_SESSION['id_utente'];
$user = $_SESSION['user_utente'];
if ($_SESSION['grado_utente'] == 1) {$grado = 1;}
}
}
else {
$highlight == "si";
$id = $_COOKIE['id_utente'];
$user = $_COOKIE['user_utente'];
if ($_COOKIE['grado_utente'] == 1) {$grado = 1;}
}
if ($highlight == "si") {?>
<div class="prova">
Ciao
</div>
<?php
} else { ?>
<form action="setting.php?act=login" method="post">
<div class="header-login-sx">
Username:
Password:
</div>
<div class="header-login-dx">
<input type="text" name="username" class="input-user" />
<input type="password" name="password" class="input-pass" />
<input type="submit" value="Login" name="submit_login" class="submit-login">
</div>
<div class="header-login-bottom">
<input type="checkbox" name="ck_ricordami"> Ricordami?
</div>
</form>
<?php
}
?>
E' giusto l'if iniziale per disinguere cookies e sessions per utilizzarli poi nella pagina?
Vi ringrazio tantissimo e aspetto con ansia le vostre risposte.
Anche se avete arrangiamenti migliori e più efficaci sarò molto lieto di accoglierli.
Un saluto, Andrea.