Ho trovato qualche errore.. e ho cercato di sistemarlo meglio che potevo..
vedi te se ti piace..
piccoli consigli quando fate queste cose..
non richiamare mai una chiave dentro un'array senza apici..
sbagliato: $_POST[chiave]
giusto: $_POST['chiave']
non sai mai cosa ti va a prendere
fai sempre un trim sulle $_GET e le $_POST che butti dirette nelle query..
non si sa mai..
se c'è qualche problema fa sapere
Codice PHP:
<?php
// comodità mia
function CheckUser($username, $password) {
$sql_controllo="SELECT username, password,id FROM iscritti WHERE username = '$username' AND password = '$password'";
$result_controllo = mysql_query($sql_controllo);
if (($controllo = mysql_fetch_array($result_controllo)) != false) {
// Sempre negli array in generale.. metti i nomi delle chiavi fra apici
$_SESSION['loggato']="si";
$_SESSION['username']= $controllo['username'];
$_SESSION['id_user']= $controllo['id'];
setcookie ("username", $controllo['username'],time()+31536000,"/") ;
setcookie ("password", $controllo['password'],time()+31536000,"/") ;
}
}
//INIZIO CONTROLLI LOGIN
session_start ();
include "../dati.php" ;
mysql_select_db($db_name, $db);
// Login
if ($_GET[action]=="login") {
// occhio alle variabili.. non tutte le puoi inserire dentro una stringa
// anche un'altra cosa, fagli sempre almeno un trim su tutte le variabili
// che ti passano e che vai a mettere nelle query (giusto per evitare i furboni)
CheckUser(trim($_POST['username']), trim($_POST['password']));
} elseif ( $_GET['action']=="logout") {
// $_SESSION['loggato']="no"; // questo è inutile visto che dopo disturggi la sessione
$_SESSION = array(); // giusto per evitare cose strane
session_destroy();
session_unset();
setcookie ("username", "", time() - 31536000,"/");
setcookie ("password", "", time() - 31536000,"/");
} elseif (($_COOKIE['username']) AND ($_COOKIE['password'])) {
CheckUser(trim($_COOKIE['username']), trim($_COOKIE['password']));
}
if ( $_SESSION['loggato']=="si") {
$login="ok";
} else {
$login="no";
}
// questa non l'ho capita.. a cosa serve??? dal momento che è loggato sei sicuro che è a posto
// forse lo utilizzi per il debug
if ( $login=="ok" ) { $sql_user="SELECT * FROM iscritti WHERE id = '" .$_SESSION['id_user'] ."' ";
$result_user = mysql_query($sql_user);
$users = mysql_fetch_array($result_user); }
//FINE CONTROLLI LOGIN
?>