E' da circa una settimana che ho iniziato ad interessarmi al PHP, lo trovo un linguaggio molto potente e non difficilissimo da imparare..
Ho creato uno script che permetta ad un utente di loggarsi all'interno di un sito, andando a prelevare username e password da un database e confrontandoli con quelli immessi dall'utente.
Vi posto il codice, vorrei sapere ke ne pensate, quali cose potrei migliorare e come, sicuramente avrò fatto tanti errori(lo script sia chiaro funzionaXD)da principiante..
<?php
//codice html
$html = '
<html>
<head>
</head>
<body>
<form id="form1" name="form1" method="post" action="login.php">
<input type="text" name="user" />
<input type="password" name="pwd" />
<input type="submit" name="submit" value="Invia" />
</form>
</body>
</html>
';



//lo script preleva da una database username e password e li confronta con quelli immessi dall'utente

//impostazioni per la connessione al db
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "prova";
$db = mysql_connect($db_host, $db_user, $db_password);
//errore in caso non si riesca a collegare al db
if ($db == FALSE)
die ('<font color ="red">[b]Errore nella connessione al database[b]</font>'.mysql_error());
//selezione del db
mysql_select_db($db_name, $db)
or die ('<font color ="red">[b]Errore nella selezione del database[b]</font>'. mysql_error());
$i= 0; //è il flag di errore
$user =addslashes($_POST['user']);
$pwd =addslashes($_POST['pwd']);
if(!empty($user) && !empty($pwd)) { //se le variabili non sono vuote
if ((strlen($user)<=15 && strlen($user)>=3) && (strlen($pwd)<=15 && strlen($pwd)>=3)) {
$query = "SELECT user FROM users WHERE user = '$user'";
$result = mysql_query($query,$db);
$query2 = "SELECT pass FROM users WHERE pass = '$pwd'";
$result2 = mysql_query($query2,$db);
if((mysql_num_rows($result) == 1) && (mysql_num_rows($result2)) == 1)
echo '[b]autenticato con successo![b]';
else {
echo $html;
echo '[b]Dati di login errati[b]';
}
}
else
$i=1;
}
else
echo $html; //visualizza il codice html all'apertura della pagina}
if($i==1) {
echo $html;
echo '[b]Errore:Username e Password devono essere compresi tra 3 e 15';
}
mysql_close($db);
?>
questo invece è quello per far registrare gli utenti:
<?PHP

$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "prova";
$db = mysql_connect($db_host, $db_user, $db_password);

//variabili per la connessione al db

if ($db == FALSE)
die ('<font color ="red">[b]Errore nella connessione al database[b]</font>'.mysql_error());

//msg di errore nel caso nn riesca a collegarsi al db

mysql_select_db($db_name, $db)
or die ('<font color ="red">[b]Errore nella selezione del database[b]</font>'. mysql_error());

//parametri passati con metodo post dalla pagina precedente

$user = addslashes($_POST['user']);
$pwd = addslashes($_POST['pwd']);
$email = addslashes($_POST['email']);
$i=0;
//controlli sui dati immessi
if(strlen($user) >15 || strlen($user) < 3) {
echo'
[b]Hai inserito un username non valido, devi inserire un username con caratteri compresi tra 3 e 15[b]';
$i++; }
elseif(strlen($pwd) >15 || strlen($pwd) < 3) {
echo'
[b]Hai inserito una password non valida, devi inserire una pwd con caratteri compresi tra 3 e 15[b]';
$i++; }
elseif(strlen($email) >20) {
echo'
[b]Hai inserito una mail non valida, il massimo numero di caratteri consentiti è 20[b]';
$i++; }
//controllo per vedere se l'username inserito esiste già nel db
$query_user = "SELECT user FROM users WHERE user = '$user'";
$result = mysql_query($query_user,$db);
$num_righe = mysql_num_rows($result);
if($num_righe == 0 && $i == 0) {
$query = "INSERT INTO users (user, pass, mail)
VALUES ('$user', '$pwd', '$email') ";
if (mysql_query($query, $db)) {
echo 'Registrazione effettuata con successo

Ti ricordo i dati che hai immesso:

Username:'.$user.'

Password:'.$pwd.'

Indirizzo e-mail: '.$email.'
';
}
else echo '<font color ="red">[b]Errore nella connessione al db[b]</font>'.mysql_error();


}

else
echo $user.' il nome utente immesso è già in uso, scegline un altro';




mysql_close($db);
?>