Codice PHP:
<?php
if(isset($_GET['step'])) {
$server=$_GET['server'];
$username=$_GET['username'];
$codice=$_GET['codice'];
if($_GET['step'] == "conf") {
Db($db);
$query="SELECT * from ".$server."_user WHERE username = '$username'";
$risultato=mysql_query($query);
$num_righe=mysql_num_rows($risultato);
$row=mysql_fetch_array($risultato);
if($row[attivo] == "2") {
errore("0","Questo user è gia attivo e ha gia fondato la prima citta!");
} else {
if($row[attivo] == "1") {?>
<p align="center">Hai gia attivato l'user ma non hai ancora fondato la tua prima citta! Fallo adesso!</p>
<form>
<input name="step" type="hidden" value="crea" />
<input name="server" type="hidden" value="<?=$server;?>" />
<input name="username" type="hidden" value="<?=$username;?>" />
<input name="codice" type="hidden" value="<?=$codice;?>" />
<input name="nome_citta2" />
<input type="submit" value="Crea"/>
</form>
<? } else {
if($num_righe) {
$query="UPDATE ".$server."_user SET attivo = 1 WHERE username = '$username' AND codice = '$codice'";
if(mysql_query($query, $db)) {?>
<p align="center">Molto bene manca solo un ultimo passo e potrai giocare........scegli il nome della tua prima citta!</p>
<form>
<input name="step" type="hidden" value="crea" />
<input name="server" type="hidden" value="<?=$server;?>" />
<input name="username" type="hidden" value="<?=$username;?>" />
<input name="codice" type="hidden" value="<?=$codice;?>" />
<input name="nome_citta" />
<input type="submit" value="Crea"/>
</form>
<? } else {
errore("1","Questo codice di attivazione per l'user $user non è valido!");
}
} else {
errore("0","Questo user non esiste! molto probabilmente è stato eliminato, prova a riscriverti!");
}
}
}
}
if($_GET['step'] == "crea") {
Db($db);
$query="SELECT * from ".$server."_user WHERE username = '$username'";
$risultato=mysql_query($query);
$num_righe=mysql_num_rows($risultato);
$row=mysql_fetch_array($risultato);
$id=$row[id];
if($row[attivo] == "2") {
errore("0","Hai gia creato la tua prima citta!");
} else {
if($num_righe) {
$nome_citta=$_GET['nome_citta'];
if($row[codice] == $codice) {//verifico che il codice ia giusto
do{
$x=rand(-400,400);//genero x
$y=rand(-400,400);//genero y
$query="SELECT * FROM ".$server."_citta WHERE x=".$x." AND y=".$y;//query che verifica che nessuno abbia gia la combinazione di x e y
} while(mysql_num_rows(mysql_query($query)));
$query="INSERT INTO ".$server."_citta (nome, id_proprietario, proprietario, x, y) VALUES ('$nome_citta', '$id', '$username', '$x', '$y)";//query che inserisce i dati nella tabella _citta
if(mysql_query($query, $db)) {
$query="UPDATE ".$server."_user SET attivo = 2 WHERE username = '$username'";//query che setta "attivo" a 2 nella tabella _user
if(mysql_query($query, $db)) { ?>
<p align="center">Grandioso! <?=$nome_citta;?> è stata fondata! adesso inizia la tua avventura, riuscirai a diventare il padrone di tutta Enkairas?! O perirai sotto gli attacchi dei nemici?! chi lo sa? solo il gioco lo stabilira!</p>
<? } else {
errore("1","Errore inserimento dati!");
}
} else {
errore("1","Errore inserimento dati!");
}
} else {
errore("0","Questo codice di attivazione per l'user $user non è valido!");
}
} else {
errore("0","Questo user non esiste! molto probabilmente è stato eliminato, prova a riscriverti!");
}
}
}
} else {
if(!isset($_POST['reg'])) {?>
<div align="center">
<fieldset style="height:267px; width:260px;">
<legend>Registrazione</legend>
<form name="form" method="post">
<input type="hidden" name="reg">
<table width="260" border="0">
<tr>
<td width="69">Username:</td>
<td width="144" valign="middle"><input id="user" name="user" type="text" onkeyup="conferma(this,4,10);" onchange="conferma(this,4,10);verifica('user');" /></td>
<td width="33" valign="middle"><img id="img_ver_user" style="display:none;" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input id="pass" name="pass" type="password" onkeyup="conferma(this,4,10);" onchange="conferma(this,4,10);"></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td>Conferma:</td>
<td><input id="ver_pass" name="ver_pass" type="password" onkeyup="conferma(this,4,10,true);" onchange="conferma(this,4,10,true);"></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td>email:</td>
<td><input id="email" name="email" type="text" onkeyup="conferma(this,6,30,false,true);" onchange="conferma(this,6,30,false,true);verifica('email');"></td>
<td><img style="display:none;" id="img_ver_email" /></td>
</tr>
<tr>
<td>Server:</td>
<td><select id="server" name="server2">
<option value="s1" selected="selected">Mondo 1</option>
</select></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td>Popolo:</td>
<td><label><input type="radio" name="popolo" value="1" id="popolo_0" />Romani</label><br /><label><input type="radio" name="popolo" value="2" id="popolo_1" />Greci</label><br /><label><input type="radio" name="popolo" value="3" id="popolo_2" />Barbari</label></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td colspan="3"><label><input name="accetto" type="checkbox" value="true">Accetto i termini di utilizzo.</label></td>
</tr>
<tr>
<td height="26" colspan="3" align="center"><input type="button" value="Invia" onclick="controllo_registrazione()"></td>
</tr>
</table>
</form>
</fieldset>
</div>
<?
} else {
$user=htmlentities(mysql_real_escape_string($_POST['user']));//converto l'html in entita corrispondenti e elimino gli mysql string malevoli
$pass=htmlentities(mysql_real_escape_string($_POST['pass']));
$ver_pass=htmlentities(mysql_real_escape_string($_POST['ver_pass']));
$email=htmlentities(mysql_real_escape_string($_POST['email']));
$server=htmlentities(mysql_real_escape_string($_POST['server']));
$popolo=htmlentities(mysql_real_escape_string($_POST['popolo']));
if($user == null or $pass == null or $ver_pass == null or $email == null) {//verifico che tutti i campi siano riempiti
errore("1","Errore inserimento dati! Riprova piu tardi");
} else {
if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {//verifico che la sittssi dll'email sia corretta
errore("1","La sintassi dell'email non è corretta!");
} else {
db($db);//mi connetto al database
$query="SELECT * from ".$server."_user WHERE username = '$user'";//query che seleziona gli username nella tabella _user
$risultato=mysql_query($query);
$num_righe=mysql_num_rows($risultato);
if($num_righe) {//verifico che nessuno abbia gia scelto questo username
errore("1","Il tuo username è stato già scelto!");
} else {
$query="SELECT * from ".$server."_user WHERE email = '$email'";//query che seleziona le email nella tabella _user
$risultato=mysql_query($query);
$num_righe=mysql_num_rows($risultato);
if($num_righe) {//verifico che nessuno abbia gia usato questa email
errore("1","Qualcuno a gia usato questa email per registrarsi!");
} else {
$crypt_pass=md5($pass);//cripto la password atraverso l'hash "md5"
$arraycodice=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');//creo un array che contiene tutte le lettere e i numeri
for($i=0; $i<30; $i++) {
$randcodice=rand(1,31);//faccio un rand per stabilire le lettere e i numeri del codice
$codice.=$arraycodice[$randcodice];//aggiungo la lettera che corrisponde al rand nel codice
};
$query="INSERT INTO ".$server."_user (username, password, email, popolo, codice) VALUES ('$user', '$crypt_pass', '$email', '$popolo', '$codice')";//query che iserisce i dati nella tabella _user
if(mysql_query($query, $db)) {//eseguo la queri e verifico che sssia stata eseguita
$testo="<center><h2>Registrazione a Enkarias</h2></center><p>ciao";//variabile del testo nella email
$head.="MIME-Version: 1.0\r\n";
$head.="Content-Type: text/html; charset=\"iso-8859-1\"\r\n";//stabilisco che l'email contiene html
$head.="Content-Transfer-Encoding: 7bit\r\n";
$head.="From: Enkairas <enkairas@altervista.org>\r\n";//imposto il mittente
mail($email, "Registrazione - Enkarias", $testo, $head);//spedisco l'email
echo"Ti è stata spedita un email per confermare la tua registrazione!";
} else {
errore("1","Errore inserimento dati! Riprova piu tardi!");
}
}
}
}
}
}
}
?>