login utenti php/mysql
Salve,
scusatemi se mi intrometto nella discussione ma è da poco che utilizzo PHP e MySql - ho trovato l'argomento affrontato da xMorpheus84x e soprattutto le risposte di Eliox molto esaustive al mio problema (login di più utenti e ogni utente accede esclusivamente ai suoi dati personali ben archiviati nel database).
Ho cercato di seguire i tuoi consigli Eliox creando ed associando ad ogni record l'id del relativo utente ricavandolo da una tabella che ho creato nel mio database.
Tutto sembra funzionare bene ma ad un certo punto mi sono ritrovato con il problema che nel file login.php se l'utente sbaglia il login non mi compare l'istruzione echo "login errato";
Forse ho fatto un pò di bordello con lo script php e HTML.
ecco "login.php"
<?php
//connessione al databese
include 'connect.php';
//parte la sessione
session_start ();
//controllo dei dati inviati
if ((!isset($_POST['username'])) && (!isset($_POST['password'])))
{
// form per il login
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
User: <input type=\"text\" name=\"username\"><br>
Password: <input type=\"password\" name=\"password\"><br>
<input type=\"submit\" value=\"Invia\"></form>";
}else{
// query tabella utenti
$sql = mysql_query("SELECT * FROM utenti WHERE username='".$_POST['username']."' AND password=MD5('".$_POST['password']."')");
while ($prova = mysql_fetch_array($sql)) {
$num= $prova[0];
if (mysql_num_rows($sql)>0)
{
$_SESSION['username']=$_POST['username'];
$_SESSION['password']=$_POST['password'];
//passo la variabile con ID dell'utente
header("Location: pagina_riservata.php?id=$prova[0]");
}
else {echo "Login errato";}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<head>
<title>La mia prima pagina XHTML</title>
<link rel="stylesheet" href="stile.css" type="text/css">
<link rel="shortcut" href="http://localhost/favicon.ico">
</head>
<body>
<div id="contenitore">
<h1>AREA LOGIN!</h1>
<--dovrei mettere qui lo script relativo al form-->
<div class="footer">
<?php include 'footer.php'; ?>
</div>
</div>
</body>
</html>
ll file "pagina_riservata.php":
<?php
//connessione al database
include 'connect.php';
$result = $_GET['id'];
//inizio sessione per l'utente che ha effettuato il login
session_start();
if(isset($_SESSION['username'])&& isset($_SESSION['password']))
{
echo "Benvenuto " . $_SESSION['username'];
}else{
header("Location: form.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<head>
<title>prova</title>
<link rel="stylesheet" href="stile.css" type="text/css">
<link rel="shortcut" href="http://localhost/favicon.ico">
</head>
<body>
<div id="contenitore">
<?php
//query tabella anagrafico
$query_limit = mysql_query("SELECT * FROM personale WHERE anagrafico.utente_id = '$result'");
while($risultato = mysql_fetch_array($query_limit)) {
$cognome = $risultato[2];
$nome = $risultato[3];
$data_nascita = $risultato[4];
$luogo_nascita = $risultato[5];
//stampa della tabella con i dati
echo "<table>\n";
echo "<tr>\n";
echo "<td>" . $cognome . " </td>\n";
echo "<td>" . $nome . " </td>\n";
echo "<td>" . $data_nascita . " </td>\n";
echo "<td>" . $luogo_nascita . " </td>\n";
echo "</tr>\n";
echo "</table>\n";
}
?>
è sicuramente pieno di errori ma.....:boxing
erdonatemi !!! E' da poco che mi cimento in queste cose (autodidatta ).
Dov'è che ho sbagliato?
Grazie per l'aiuto
P.S.: ho creato anche un semplice script per logout