Allora, illustro il mio problema:
ho questo codice di login:
Codice PHP:
<HTML>
<HEAD>
</HEAD>
<BODY>
<table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody>
<tr><form action="INCLUDE/checklogin.php" method="post"> <td>
<table border="0" cellspacing="2" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody>
<tr>
</tr>
<tr>
<td width="78">Username:</td>
<td width="6"> </td>
<td width="294"><input id="myusername" name="myusername" type="text" /></td>
</tr>
<tr>
<td>Password:</td>
<td> </td>
<td><input id="mypassword" name="mypassword" type="password" /></td>
</tr>
<tr>
<td>Server:</td>
<td> </td>
<td><select id="server" name="server">
<option value="s1" selected="selected">Server 1</option>
</select></td>
</tr>
</tbody></table>
</td>
<tr>
<td colspan="3"><label>.
<input name="Submit" type="submit" value="Login" />
</label></td>
<tr>
</form></tr>
</tbody></table>
<p> </p>
</BODY>
</HTML>
che dipende dal file checklogin.php:
Codice PHP:
<?php
require ("config.inc.php");
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$server=$_POST['server'];
$sql="SELECT * FROM ".$server."_utenti WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location: http://".$server.".enkantar2.altervista.org/index.php");
}
else {
echo "Attenzione: username o password errati";
}
?>
Adesso vorrei fare che se l'utente che ha effettuato il login ha un certo attributo (valore "attivazione nel db superiore a 0) visualizzerà la pagina normale, altrimenti visualizzerà la richiesta di fondare una città. Perciò ho buttato giù questo:
Codice PHP:
<?php
session_start();
$server = $_SESSION['server'];
$myusername = $_SESSION['myusername'];
switch($_GET['view']) {
case 'nuovacitta':
$città = $_POST['citta'];
$x=rand(0,320);//genero x
$y=rand(0,320);//genero y
mysql_query("INSERT INTO ".$server."_città (nome,proprietario,x,y,legno,marmo,grano,ferro) VALUES ('$citta','$db_utente[id]','$x,'$y','200','100','100','100')",$db) || die(mysql_error());
$query = "SELECT nome, proprietario, x, y, legno, marmo, ferro, grano FROM ".$server."_città WHERE username='$myusername'";
$result = mysql_query($query, $db);
$db_città = mysql_fetch_array($result);
if ($db_utente[attivazione] == "0")
{
echo "Complimenti, ".$db_città[nome]." è stata fondata";
break;
default:
$query = "SELECT username, razza, attivazione FROM ".$server."_utenti WHERE id='$id'";
$result = mysql_query($query, $db);
$db_utente = mysql_fetch_array($result);
if ($db_utente[attivazione] == "0")
{
echo "Ancora non hai fondato nessuna città! Fonda la tua capitale";
?>
<html>
<tr><form action="index.php?view=nuovacitta" method="post">
<table width="101%" border="0">
<tr>
<td width="15%">Nome della cittàe:</td>
<td width="20%"><input type="text" name="citta" id="città" size="30" /></td>
<td> </td>
</tr>
</table>
<input name="Submit" type="submit" value="Fonda" />
</form>
</tr>
</form>
</html>
<?php
break;
}
}
?>
Come chiaramente vedrete effettuando il login con un utente (prova, prova) non succederà nulla.
http://enkantar2.altervista.org/login.php.
Cosa devo fare? Grazie mille!