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..
questo invece è quello per far registrare gli utenti:<?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);
?>
<?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);
?>