1) sulla pagina login_success.php rimuovi "<meta http-equiv="refresh" content="300"; url=<?php echo $_SERVER['PHP_SELF']; ?>">" e metti "<input type="button" value="Reload Page" onClick="window.location.reload()">" (poi creati una tabella o un div per sistemarlo dove meglio credi nella pagina)
2-3)su index.php rimuovi questa parte:
Codice PHP:
<form action="checkregister.php" method="post">
<input type="text" name="username" placeholder="Username" />
<input type="password" name="password" placeholder="Password" />
<input type="submit" name="Submit" value="Registrati" />
</form>
e metti questa:
Codice PHP:
<form action="checkregister.php" method="post">
<input type="text" name="username" placeholder="Username" />
<input type="password" name="password" placeholder="Password" />
<input type="email" name="email" placeholder="Email" />
<input type="submit" name="Submit" value="Registrati" />
</form>
nel file checklogin.php rimuovi questo:
Codice PHP:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
e metti questo
Codice PHP:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' && password='$mypassword' && ver='1'";
sempre su checklogin.php cambia:
Codice PHP:
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Attenzione username o password errati";
}
con questo:
Codice PHP:
if($count==1){
$_SESSION['log'] = '1';
$_SESSION['username'] = $_POST['myusername'];
header("location:login_success.php");
} else {
$_SESSION['log'] = '0';
$_SESSION['username'] = '';
die ("Attenzione username o password errati!");
}
nel file login_success.php cambia questa parte:
Codice PHP:
<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
// Configurazioni
// Variabili di configurazione (indirizzo, username, password)
$mysql_host="localhost";
$mysql_username="";
$mysql_password="";
$mysql_database="";
// Connettiamoci a mysql e al database
$connect=mysql_connect($mysql_host, $mysql_username, $mysql_password);
$db=mysql_select_db($mysql_database, $connect);
if(!$connect){echo "<p>Impossibile connettersi al server!</p>";}
if(!$db){echo "<p>Impossibile connettersi al database!</p>";}
?>
con questa:
Codice PHP:
<?
session_start();
if($_SESSION['log'] == 0){
header("location:index.php");
}
// Configurazioni
// Variabili di configurazione (indirizzo, username, password)
$mysql_host="localhost";
$mysql_username="";
$mysql_password="";
$mysql_database="";
// Connettiamoci a mysql e al database
$connect=mysql_connect($mysql_host, $mysql_username, $mysql_password);
$db=mysql_select_db($mysql_database, $connect);
if(!$connect){echo "<p>Impossibile connettersi al server!</p>";}
if(!$db){echo "<p>Impossibile connettersi al database!</p>";}
?>
per quanto riguarda il discorso della chat prova a cambiare nel file login_success.php questa parte:
Codice PHP:
<?php
$name=$_POST['name'];
$message=$_POST['text'];
if ($name AND $message)
{
mysql_query("INSERT INTO Chat VALUES ('$name', '$message');");
}
$query_select=mysql_query("SELECT * FROM Chat") ;
while($rows=mysql_fetch_array($query_select))
{
echo "<p>{$rows['names']}:</p><p></p>";
$messages=htmlspecialchars($rows['messages']);
echo "<p align=”left“>$messages</p>";
}
?>
</div>
<table>
<tr>
<td>Nome:</td>
<td><input type="text" name="name" value="<?php echo $name; ?>"></td>
</tr>
in questa:
Codice PHP:
<?php
$name= $_SESSION['username'];
$message=$_POST['text'];
if ($name AND $message)
{
mysql_query("INSERT INTO Chat VALUES ('$name', '$message');") OR die (mysql_error());
}
$query_select=mysql_query("SELECT * FROM Chat") OR die (mysql_error());
while($rows=mysql_fetch_array($query_select))
{
echo "<p>{$rows['names']}:</p><p></p>";
$messages=htmlspecialchars($rows['messages']);
echo "<p align=”left“>$messages</p>";
}
?>
</div>
<table>
<tr>
<td>Nome:</td>
<td><input type="text" name="name" value="<?php echo $name; ?>"></td>
</tr>
poi nel file checkregister.php rimuovi questa parte:
Codice PHP:
$username = $_POST['username'];
$password = $_POST['password'];
mysql_query("INSERT INTO ".$tbl_name." (username,password) VALUES ('$username','$password')",$db) || die(mysql_error());
e metti questa:
Codice PHP:
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$car = "aAbBcCdDeEfFgGhHiIlLjJkKmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
$dim = 15;
srand((double)microtime()*1000000);
$string = '' ;
for($inc=0; $inc<$dim; $inc++)
{
$rand = rand(0, strlen($car)-1);
$scar = substr($car, $rand, 1);
$string = $string . $scar;
}
mysql_query("INSERT INTO ".$tbl_name." (username,password,email,key_control) VALUES ('$username','$password','$email', '$string')",$db) || die(mysql_error());
$content = "Benvenuto $username,\r\n";
$content .= "per confermare la tua iscrizione devi cliccare sul seguente link:\r\n\r\n";
$content .= "http://MasterBastard.altervista.org/checkregister.php?key=" . $string;
$intestazioni = "From: MasterBastard@altervista.org\r\n";
$intestazioni .= "X-Mailer: PHP/".phpversion();
mail($email, "Iscrizione al sito", $content, $intestazioni);
$key_control = $_GET['key'];
if(isset($key_control)){
$sql = "SELECT id FROM members WHERE key_control='$key_control'";
$res = mysql_query($sql) OR die (mysql_error());
if($row = mysql_fetch_array($res))
{
$query = "UPDATE members SET ver=1,key_control='0' WHERE id='$row[id]'";
mysql_query($query) OR die (mysql_error());
echo "Il tuo account è ora attivato!";
}
else
{
echo "Impossibile verificare l'account!";
}
}
Nella tabella members devi aggiungere 3 campi che saranno:
- email
- key_control
- ver (che dovrai impostare di default uguale a 0)
inoltre spero nella tabella members ci sia il campo id impostato come chiave primaria e autoincrementante
In pratica lo script manda una email all'email postata con un link cha sarà ad esempio:
Codice:
http://MasterBastard.altervista.org/checkregister.php?key=2QRF2S7xwKHANkb
quando l'utente clicca sul link lo script verifica che la chiave 2QRF2S7xwKHANkb sia presente nel database, se è presente allora attiva l'account altrimenti lo lascia disabilitato.
se hai problemi posta e vedremo di risolverli.