Problema con pagine login in PHP

francesco84_

Nuovo Utente
1 Set 2018
3
0
1
Salve a tutti, sono Francesco e sono nuovo del forum.
Ho un problema che non riesco a risolvere.
Devo realizzare una pagina html con un form con un solo campo, il campo password.
Ho gia creato il db che contiene tutte le password che danno accesso all'area riservata.
Il sistema di login funziona bene, ma vorrei fare in modo che una volta che l'utente abbia realizzato l'accesso inserendo correttamente la propria password non possa andare avanti ed indietro con i tasti del browser.
Se l'utente A inserisce una password corretta accede ma facendo avanti ed indietro con i tasti del browser può navigare comunque tra le pagine.
Allego il codice che ho scritto in attesa che qualcuno mi possa aiutare.
PAGINA INDEX.HTML

HTML:
<!doctype html>
<html>
<head>
 <title>Identificazione dell'utente</title>
</head>
<body>
 <h2>Accesso all'area riservata</h2>
 <form action="controllalogin.php" method="POST">
 <p>
 Password: <input type="text" name="valore" /><br/>
 </p>
 <p>
 <input type="submit" name="invio" value="Login" />
 <input type="reset" name="cancella" value="Annulla" />
 </p>
</form>
</body>
</html>

PAGINA CONTROLLALOGIN.PHP
PHP:
<?php
$host="localhost";
$username="testfrance84";
$pass="";
$db_nome="my_testfrance84";
$tab_nome="passwords";
mysql_connect($host, $username, $pass) or die('Impossibile connettersi al server: ' . mysql_error());
mysql_select_db($db_nome) or die ('Accesso al database non riuscito: '. mysql_error());

// acquisizione dati dal form HTML
$password = $_POST["valore"];

// lettura della tabella utenti
$sql="SELECT * FROM passwords WHERE chiave='$password'";
$result=mysql_query($sql);
$conta=mysql_num_rows($result);
if($conta==1){
session_start();
header("Location: loginok.php");
}
else {
echo "Identificazione non riuscita: nome utente o password errati <br />";
echo "Torna a pagina di <a href=\"index.html\">login</a>";
}
?>

PAGINA LOGINOK.PHP
PHP:
<html>
<body>
Identificazione utente riuscita! <br />
Benvenuto nell'area riservata <br />
<?php
session_start();
if(!isset($_SESSION['password'])) {
echo "qui puoi trovare il quiz da compilare...";
}
?>
premi su <a href="logout.php">Logout</a> per disconnetterti
</body>
</html>

attendo vostri consigli...
grazie,
Francesco
 
Dentro la pagina di loginok.php ho inserito un modulo google con un semplice quiz. tuttavia aggiornare la pagina, andare indietro e successivamente avanti consente di ripetere il quiz. E' possibile evitare questa cosa?
Io avevo pensato ad un campo settato a 1 per ogni utente nel db. Una volta che l'utente X accede il valore viene impostato a -1. Se tenta una delle azioni vietate(indietro o refresh del browser) legge un messaggio di errore e non potrà più fare il test. Vorrei realizzare questa cosa, ma non ci riesco.
 
Ho risolto la questione del refresh, inserendo un campo nel db che, al primo accesso, viene settato a -1, per cui al secondo accesso o al refresh non si può accedere al quiz e viene visualizzato un messaggio di errore. Tuttavia se uso il tasto indietro del browser il metodo non funziona.
Idee?
 

Discussioni simili