impedire accesso area riservata a utenti registrati

netmaster

Nuovo Utente
8 Dic 2008
14
0
1
Salve a tutti. In riferimento ad un sistema di registrazione utenti nel mio sito, vorrei includere una funzione per impedire l'accesso all'area riservata nel caso che un eventuale utente si comporti male (nell'area riservata ci saranno guestbook e upload foto).
A tal fine, per premunirmi da eventuali disturbatori, ho pensato di fare così:

L'utente registrato ed attivo è configurato nella tabella SQL con la condizione "ver" impostata a 1; visualizzo la lista degli utenti (con lo script utenti.php) registrati nel database da cui linko ad un file(banna.php) che esegue una query alterando la condizione "ver" sopraindicata da 1 a 2, impedendogli, in tal modo, di effettuare il login all'area riservata.

Il Problema sta nel fatto che il file banna.php non mi funziona. Dovrei valorizzare la variabile $row[id] ma non so come fare. Ho provato in questo modo $id = $row['id']; ma non funziona. Qualcuno mi può aiutare a risolvere questo problema?

In attesa di una gentile risposta, colgo l'occasione per porgere i saluti e gli auguri di buone feste
a tutti i membri di questa comunità.

VISUALIZZA LISTA UTENTI: utenti.php
PHP:
<?php
include("db_connessione.php");

$query = " SELECT id,username,email,ver FROM users " . " ORDER BY id "; 
$result = mysql_query($query) or die('Errore, query fallita');

echo "<html><body>";
echo "
<table align=\"center\">
<tr>
<td class=\"intestazione\">ID</td>
<td class=\"intestazione\">Utente</td>
<td class=\"intestazione\">E-mail</td>
<td class=\"intestazione\">Status</td>
<td class=\"intestazione\">Banna</td>
</tr>
";
// Visualizzo le informazioni
while($row = mysql_fetch_array($result)){
echo "
<tr>
<td>".$row['id']."</td>
<td>".$row['username']."</td>
<td>".$row['email']."</td>
<td>".$row['ver']."</td>
<td><a href=\"banna.php\">banna</a></td>
</tr>
";
}
echo "</table>";
echo "</body></html>";

$query = "SELECT COUNT(id) AS numrows FROM users";
$result = mysql_query($query) or die('Errore, query fallita');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

mysql_close($this->conn);
?>

BANNA UTENTE: banna.php
PHP:
<?php
include("db_connessione.php");

$query = "UPDATE users SET ver=2,key_control='0' WHERE id='$row[id]'";
mysql_query($query,$this->conn);
mysql_close($this->conn);

echo "<p>utente bannato</p>";
echo '<p><a href="utenti.php">torna alla lista</a></p>';
?>
 
Non puoi passare variabili da un file PHP all'altro come hai fatto tu, senza alcun riferimento. Ti ricordo che le variabili PHP esistono per la durata dell'esecuzione dello script, appena finisce di caricare la pagina si distruggono. Per risolvere fai così. Modifica utenti.php in questo modo:
PHP:
<?php
include("db_connessione.php");

$query = " SELECT id,username,email,ver FROM users " . " ORDER BY id "; 
$result = mysql_query($query) or die('Errore, query fallita');

echo "<html><body>";
echo "
<table align=\"center\">
<tr>
<td class=\"intestazione\">ID</td>
<td class=\"intestazione\">Utente</td>
<td class=\"intestazione\">E-mail</td>
<td class=\"intestazione\">Status</td>
<td class=\"intestazione\">Banna</td>
</tr>
";
// Visualizzo le informazioni
while($row = mysql_fetch_array($result)){
echo "
<tr>
<td>".$row['id']."</td>
<td>".$row['username']."</td>
<td>".$row['email']."</td>
<td>".$row['ver']."</td>
<td><a href=\"banna.php?id={$row['id']}\">banna</a></td>
</tr>
";
}
echo "</table>";
echo "</body></html>";

$query = "SELECT COUNT(id) AS numrows FROM users";
$result = mysql_query($query) or die('Errore, query fallita');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

mysql_close($this->conn);
?>
E banna.php così:
PHP:
<?php
include("db_connessione.php");

$id = mysql_real_escape_string($_GET['id']);

$query = "UPDATE users SET ver=2,key_control='0' WHERE id='{$id}'";
mysql_query($query,$this->conn);
mysql_close($this->conn);

echo "<p>utente bannato</p>";
echo '<p><a href="utenti.php">torna alla lista</a></p>';
?>
 

Discussioni simili