Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
14/06/09 8:49
Enemy
Salve a tutti, sono circa 4 giorni e 3 notti che smanetto con il php/mysql, vorrei sapere se qualcuno ha fatto un sistema login oppure conosce un how-to in modo che spieghi per bene come si fa.

Gia' ho creato le query e tutto, con i diversi livelli user ecc. Ho gia fatto il form per l'inserimento dati nella tabella, mi serve solo loggarmi e al max recuperare la password.

Grazie in anticipo :D
aaa
14/06/09 17:47
cassin.simone
Postato originariamente da Enemy:

Salve a tutti, sono circa 4 giorni e 3 notti che smanetto con il php/mysql, vorrei sapere se qualcuno ha fatto un sistema login oppure conosce un how-to in modo che spieghi per bene come si fa.

Gia' ho creato le query e tutto, con i diversi livelli user ecc. Ho gia fatto il form per l'inserimento dati nella tabella, mi serve solo loggarmi e al max recuperare la password.

Grazie in anticipo :D


Scus, ma hai fatto la parte più difficile...il login e il recupero password li fai in 2 secondi se hai fatto tutto questo...
aaa
14/06/09 21:30
Enemy
Emh


Posto un po di codice :

Per quanto riguarda la Query :

<?

include("configurazionedatabase.php");


$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Non e' possibile connettersi al database, controlla la configurazione");
mysql_select_db($db_name, $db)
or die ("Errore nei parametri della configurazione");

$query = "CREATE TABLE membri (

	id INT (5) UNSIGNED not null AUTO_INCREMENT, 
	nickname VARCHAR (255) not null, 
	password VARCHAR (50),  
	mail VARCHAR (50), 


	PRIMARY KEY (id)

)";




if (mysql_query($query, $db))



echo "L'installazione della query e' avvenuta correttamente";
else
echo "Errore durante l'installazione";
mysql_close($db);
?>





Per quanto riguarda l'immisione di un utente nella tabella :


<?

$Nickname=$_POST['nickname'];
$Password=$_POST['password'];
$Mail=$_POST['mail'];


$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Non e' possibile connettersi al database, controlla la configurazione");
mysql_select_db($db_name, $db)
or die ("Errore nei parametri della configurazione");

mysql_query("INSERT INTO membri VALUES ('$Nickname','$Password','$Mail')");
echo "Ti sei registrato, grazie!";
mysql_close();

 ?>


<form name="registrazioneutente" method="post" action="registrati.php">
  <b>Nome Utente (Nickname) :</b><br>
  <input name="Nickname" type="text" id="nickname"><br>

  <b>La tua password :</b><br>
  <input name="Password" type="password" id="password"><br>

  <b>La tua mail :</b><br>
  <input name="Mail" type="text" id="mail"><br>

  <p> 
    <input type="submit" name="Submit" value="Registrati">
  </p>

</form>





Come faccio a rendere pagine protette quando si effettua un login, ma piu' importante come faccio a fa il login. Grazie
aaa
14/06/09 22:29
Thejuster
Ciao enemy il tuo sistema e perfettamente funzionante.
per effettuare un login, basta verificare i dati inviati dal Form
POST e riscontrarli nel database
eseguendo un ciclo while su tutte le colonne alla posizione WHERE

ti spiego.


Form di Invio

<form name="registrazioneutente" method="post" action="registrati.php">
  <b>Nome Utente (Nickname) :</b><br>
  <input name="Nickname" type="text" id="nickname"><br>

  <b>La tua password :</b><br>
  <input name="Password" type="password" id="password"><br>

  <b>La tua mail :</b><br>
  <input name="Mail" type="text" id="mail"><br>

  <p>
    <input type="submit" name="Submit" value="Registrati">
  </p>

</form>



Riscontro Username e Password


<?

$nick = $_POST[nickname];
$pass = $_POST[password];

//var per verificare che tutto sia corretto
$verifica = "";


//eseguo la query sulla tabella membri alla colonna username
//in cerca del nick inviato dall'utente

$sql = mysql_query("SELECT * FROM membri WHERE username='$nick';");


//Ciclo per verificare se esiste il nick in tutta la tabella

while($row = mysql_fetch_array($sql)) {

if($row[username] == $nick) {
 if($row[password] == $pass) {

  //setto esempio un coockie o una sessione per 
  //indentificare che l'utente abbia effettuato l'accesso
  
    setcookie("miosito", $nick, time()+600);
    $verifica = "si"; 
  
   } else { $verifica = "no"; }
}

}

if($verifica == "si") { echo "Benvenuto $nick, Grazie per esserti loggato."; }
if($verifica == "no") { echo "Username o Password errati, Controlla i tuoi dati"; }


?>



edit:
fatto questo nell'index ti basta eseguire una semplice verifica del coockie
dell'esistenza. se esiste recuperi il nick contenuto
e con quello rifari una query per recuperare permessi o altro.
Ultima modifica effettuata da Thejuster 14/06/09 22:32
mire.forumfree.it/ - Mire Engine
C# UI Designer
15/06/09 9:04
Enemy
Mille grazie, ho capito come devo fare, ho fatto anche il logout eliminando il cookie e la sessione :D

Grazie Thejuster!!!
aaa
16/06/09 18:44
matteoiamma
Tra qualche giorno ho intenzione di pubblicare un "programma" qui su pierotofy.it che sarà un sistema di registrazione e login già pronto: una cosetta da 30 minuti(Domani, appena ho tempo la faccio:k:;):rotfl:)
aaa
27/06/09 23:11
Xaratroom
Avete mai sentito parlare di SQL injection ?
Ma come programmate ?
Quel codice non è sicuro !
Ultima modifica effettuata da Xaratroom 27/06/09 23:17
aaa
28/06/09 3:08
Enemy
Vero, anche perche' nel coockie viene memorizzato solo l'user, in pratica e' facile creare un cookie e loggarsi sapendo solo il nick.

Il sistema me lo sono riadattato, con amici ho fatto prove per quanto riguarda la sicurezza.

Nel coockie bisogna mettere anche l' md5 cosi da rendere sicuro anche l'accesso.
aaa