//.....
if ($bb==""){//penso che qui o prima avrai un if questo l'ho messo provvisoriamente per verificare la correttezza del codice
//qui dovrebbe esserci un echo
echo "
<form method=\"post\" action=\"/?do=hubs&id=" . $row [0] . "&action=ban\">
<table class=\"nospacing multicol\">
<tr>
<td>ID:</td>
<td>
<a href=\"/?do=hubs&id=" . $row [0] . "\" target=\"_blank\">" . $row [0] . "</a>
</td>
</tr>
<tr>
<td>Ban reason</td>
<td> </td>
</tr>
<tr>
<td>
<select name=\"ban_reason\">
<option value=\"\">- Select ban reason -</option>
<option value=\"Duplicate\">Duplicate</option>
<option value=\"Fake users\">Fake users</option>
<option value=\"Other\">Other</option>
</select>
</td>
<td> </td>
</tr>
</table>
<input style=\"margin-top: 5px;\" class=\"button\" type=\"submit\" name=\"ban_send\" value=\"Submit\" />
</form>
";
//ATTENTO: in php else if va scritto attaccato elseif
//poi togli tutto quell'ambaradan di parentesi ()
// e non serve che tu verifichi anche il tipo di variabile con ===
//meglio non mettere spazi tra $_GET e nome
}elseif(isSET($_GET['action']) && $_GET['action'] == "unban" && $class > 0) { // action=unban
//in tutte le query togli gli apici ai nomi campi e tabelle
//nelle query per chiarezza è meglio mettere le parole chiave in maiscolo
mysql_query ("UPDATE hubs SET status = 20, banreason = null WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
}elseif(isSET ($_GET['action']) && $_GET['action'] == "enable" && $class > 0) { // action=enable
mysql_query ("UPDATE hubs SET status = 20 WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
}elseif(isSET ($_GET['action']) && $_GET['action'] == "disable" && $class > 0) { // action=disable
mysql_query ("DELETE FROM users WHERE hub = " . $row [0]); // delete old users
mysql_query ("UPDATE hubs SET status = 8, onlineusers = 0, totalshare = 0 WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
}elseif(isSET ($_GET['action']) && $_GET['action'] == "restore" && $class > 0) { // action=restore
mysql_query ("UPDATE hubs SET status = 0 WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
}elseif (isSET ($_GET['action']) && $_GET['action'] == "delete" && $class > 0) { // action=delete
mysql_query ("DELETE FROM users WHERE hub = " . $row [0]); // delete old users
mysql_query ("DELETE FROM news WHERE hub = " . $row [0]); // delete news
mysql_query ("UPDATE hubs SET status = 19, onlineusers = 0, totalshare = 0 WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
}elseif (isSET ($_GET['action']) && $_GET['action'] == "debug" && $class > 0) { // action=debug
mysql_query ("UPDATE hubs SET debug = 1 WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
}elseif (isSET ($_GET['action']) && $_GET['action'] == "undebug" && $class > 0) { // action=undebug
mysql_query ("UPDATE hubs SET debug = 0 WHERE id = " . $row [0] . " LIMIT 1");
header ("location: /?do=hubs&id=" . $row [0]);
} else { // action=show
//ATTENTO te_empty e te_html_encode NON sono funzioni php
//il ! davanti è negazione
//quindi !empety(...) corrisponde a quello che hai ... === false
if (!empty ($row [4])) { // hub information
//attento con l'esplode $hub_name diventa un array
$pinco = explode (" - ", $row [4], 2);
//e anche se php fa il cast è meglio non attribuire ad un array un valore non array
//non so cosa intenevi fare con te_html_encode
//ma penso trasformare i caratteri speciali in entità html quindi
$hub_name = htmlentities($pinco [0]);
//con htmlentities esempio é diventa é lo spazio
//verifica le parentesi graffe else
}else{
$hub_name = "<span style=\"color: #808080;\">Not available</span>";
}
//............
}//questa graffa si riferisce all'if provvisorio
//...ecc....