Salve a tutti,
Il problema è il seguente. Dunque, ho creato una pagina di iscrizione, con l'invio dell'email per attivare l'acdcount. ormai tutti i siti fanno questa procedura. Ma il punto è che non riesco ad attivare l'account. O mi sono rincritinito io oppure non c'ho capito na mazza di come deve essere impostata la questione. Vi posto tutto per ordine, in modo tale che vi possiate rendere conto se ho fatto qualche cavolata o meno. Partiamo subito dalla tabella utenti:
Tabella utenti:
Spiegazioni: il campo autorizzato è impostato su 0, che come mi hanno spiegato, di default l'account è disattivato.
Ora posto la pagina di login.php:
E infine posto la pagina di attivazione.php:
Questo è quanto. Dove sbaglio ????? Grazie a tutti dell'attenzione.
Il problema è il seguente. Dunque, ho creato una pagina di iscrizione, con l'invio dell'email per attivare l'acdcount. ormai tutti i siti fanno questa procedura. Ma il punto è che non riesco ad attivare l'account. O mi sono rincritinito io oppure non c'ho capito na mazza di come deve essere impostata la questione. Vi posto tutto per ordine, in modo tale che vi possiate rendere conto se ho fatto qualche cavolata o meno. Partiamo subito dalla tabella utenti:
Tabella utenti:
PHP:
create table utenti (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR(30) NOT NULL,
cognome VARCHAR(30) NOT NULL,
username VARCHAR(30) NOT NULL,
email VARCHAR(40) NOT NULL,
password VARCHAR(255) NOT NULL,
autorizzato ENUM('1', '0') DEFAULT '0',
PRIMARY KEY (id)
);
Spiegazioni: il campo autorizzato è impostato su 0, che come mi hanno spiegato, di default l'account è disattivato.
Ora posto la pagina di login.php:
PHP:
<?php
require_once("connetti.php");
if (!isset($_POST['log'])) {
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Loggati</title>
<center> <H2>DIGITARE USERNAME & PASSWORD. PREMERE <a href="iscrizione.php"> QUI</a> </H2>
<form action= '' method="POST">
<font face="Comic Sans MS">
Username: <input type="text" name="username" maxlength="30" size ="32"> <br> <br>
Password: <input type="password" name="password" maxlength="12" size ="14"> <br> <br>
</font>
<center>
<input type="submit" name="log" value="Loggati" />
</center> </form>
</head>
</body>
<?php
} else {
session_start();
//Query originale
$query = "SELECT id,username, nome, autorizzato FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";
$cerco = mysql_query($query);
if (!isset($_POST['esci'])) {
if (!$cerco) {
echo "Errore query: <br/>$query<br/>" . mysql_error();
mysql_error();
} else {
if (mysql_num_rows($cerco) == 0) {
$row = mysql_fetch_assoc($cerco);
$_SESSION['nome'] = $row['nome'];
$_SESSION['id'] = $row['id'];
//$_SESSION['autorizzato'] = $row['autorizzato'];
$_SESSION['autorizzato'] = 1;
$query = "SELECT id,username, nome, autorizzato
FROM utenti
WHERE attivo = 1 AND //Qua debbo mettere attivo o autorizzato ???????
username='" . $_POST['username'] . "' AND
password='" . md5($_POST['password']) . "'";
header("Refresh: 0;URL=paginaris.php");
} else {
echo "<h2> <center>";
echo 'Premere su <a href="javascript:history.back();">back</a> Indietro per riprovare </h2>';
echo "Utente non trovato";
header("Refresh: 1;URL=login.php");
echo "</h2> <center>";
}
}
}
}
?>
E infine posto la pagina di attivazione.php:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Account attivato</title>
<center> <h1> Ora il tuo account è stato attivato. Ti arriverà un'altra emaail con i dati relativi alla tua connessione.
Conserva l'emaile non cestinarla. Una volta persa, non potrai più accedere al tuo account.</center></h1>
</head>
<body>
<?php
// includiamo il file di configurazione
require_once("connetti.php");
// controlliamo se i parametri sono presenti in tabella
$ctrl_login = @mysql_query("SELECT id FROM utenti WHERE email='$email' AND password='$password'") or die (mysql_error());
if(@mysql_num_rows($ctrl_login)==1)
{
// esito login negativo
echo "Login incorretto.";
}else{
// esito login positivo quindi rendiamo l'utente attivo
$obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
$query_attivo = @mysql_query("UPDATE utenti SET attivo='1' WHERE id=".$obj->id) or die (mysql_error());
var_dump($query_attivo);
}
?>
</body>
</html>
Questo è quanto. Dove sbaglio ????? Grazie a tutti dell'attenzione.