Ciao, grazie mille per l'interessamento.
Allora, la variabile $link la prendo da i ile che includo all'inizio, comunque hai ragione, non serve. Per quanto riguarda la differenza tra mail ed email sta solo nel nome che ho dato all'input, ma i dati sono giusti.
Il tuo codice, non capisco come mai, mi da errore "La mail inserita non corrisponde a nessun account", cioe' nessun record nel DB con quella mail.
Ora ti scrivo il codice che usavo per intero, commentato, magari e' piu' chiaro
Codice PHP:
<?php
session_start();
error_reporting(E_ALL);
require 'config.php';
require 'connect.php';
$mail = mysql_real_escape_string($_POST['email']);
$pwd = mysql_real_escape_string($_POST['pwd']);
$error = 'empty'; //nessun dato ricevuto da POST
if(($mail) && ($pwd == "")) { // nessuna password inserita
$error = 'no_pwd';
}
elseif(($pwd) && ($mail == "")) { // nessuna mail inserita
$error = 'no_mail';
}
elseif(($mail) && ($pwd)) { // mail e pwd inserite, analizzo i possibili errori
$log_query = "SELECT * FROM `users` WHERE `mail` = " . "'" . $mail . "'"; // prelevo la mail
$log_data = mysql_query($log_query, $link);
$n = mysql_num_rows($log_data); // conto i risultati
if($n == 0) { // nessun risultato, mail errata
$error = 'mail_err';
}
else { // altrimenti prelevo i dati restanti
$data = mysql_fetch_row($log_data);
$uid = $data[0];
$status = $data[1];
$key = $data[2];
$user = $data[4];
$user_pwd = $data[5];
if($status == 0) { // account non ancora attivato
$error = 'no_act';
}
elseif($status == 1) { // altrimenti controllo la password
$pwd = md5($pwd);
if(($user_pwd == $pwd)) { // se e' tutto corretto, creo le variabili di sessione
$error = 'none';
$_SESSION['key'] = $key;
$_SESSION['mail'] = $mail;
$_SESSION['pwd'] = $pwd;
$_SESSION['user'] = $user;
}
else { // altrimenti la password e' errata
$error = 'pwd_err';
}
}
}
}
require 'header.php';
?>
Qui la parte della home in cui decido cosa mostrare in base alla sesisone
Codice PHP:
<?php
if(!$_SESSION) {
echo '<form name="log_in" method="post" action="">';
echo '<input type="text" name="email" placeholder="Mail" class="form" />';
echo '<input type="password" name="pwd" placeholder="Password" class="form" />';
echo '<input type="submit" value="Accedi" class="log_button" />';
echo '</form>';
}
else {
echo '
[url="logout.php"]Logout[/url]</p>';
}
switch($error) {
case 'none':
echo "Login avvenuto con successo.";
break;
case 'no_pwd':
echo "Inserisci la password.";
break;
case 'no_mail':
echo "Inserisci la mail.";
break;
case 'mail_err':
echo "La mail inserita non corrisponde a nessun account.";
break;
case 'no_act':
echo "Questo account non è stato ancora attivato.";
break;
case 'pwd_err':
echo "Password errata.";
break;
case 'empty':
echo "Nessuna info";
break;
}
?>
header.php
Codice PHP:
<!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">
<head>
<title>Threads</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<div id="header">
<div id="menu_cont">
<div class="nav" style="width: 148px;">
Logo
</div>
<div class="nav" style="width: 420px; padding-top: 8px;">
<input type="text" class="search" /><div class="search_button">vai</div>
</div>
<div class="nav" style="padding-top: 10px; float: right">
<div style="width: 140px;">
<?php
if($_SESSION['key'] != "") {
echo '<div class="user_img"> [img][/img] </div><span class="user">[url="#"]' . $_SESSION['user'] . '[/url]</span>';
echo '<div style="width: 0px height: 0px; border-top: solid 4px #444; border-left: solid 3px transparent; border-right: solid 3px transparent; margin-top: 14px; margin-left: 2px; float: left;"></div>';
}
else {
echo '<span class="user">[url="http://www.threads.altervista.org/versione/reg.php"]Registrati[/url]</span>';
}
?>
</div>
</div>
</div>
</div>
Grazie ancora