Un saluto a tutti gli utenti, è la prima volta che scrivo e chiedo scusa in anticipo se vado a postare una domanda sciocca ma mi sono da poco avvicinato al php.
Sto creando un accesso riservato, prendo i dati dalla tabella “utenti” del db “prova” (ID, username, password), la pagina funziona correttamente anche se quando la visualizzo mi da degli errori che non capisco e non riesco ad eliminare.
Ecco il codice:
Codice PHP:
<?php
//variabili di connessione
$db_host = "localhost";
$db_user = "root";
$db_name = "prova";
//connetto il database
$db = mysql_connect($db_host, $db_user) or die ('Errore durante la connessione');
mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');
?>
<html>
<head>
<title>Accesso</title>
</head>
<body>
<form action='<? echo $_SERVER['PHP_SELF']; ?>?login=ok' method='POST'>
<b>Username</b><br>
<input type='text' name='user'><br>
<b>Password</b><br>
<input type='password' name='pass'><br>
<input type='submit' value='Effettua il login'>
</form>
<?php
// recupero di valori inviati dal form: user e pass
$user = $_POST['user'];
$pass = $_POST['pass'];
$risp = "ok";
$login = $_GET['login'];
// evito di ricevere subito un messaggio dallo script
if ( $login == $risp ) {
// controllo che entrambi i valori siano stati compilati
if ( $user && $pass ) {
// effettuo l'escape per i valori speciali per evitare problemi con le query
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);
// preparo una queryper vedere se esistono i valori appena inseriti nella tabella creata precedentemente
$sql = "SELECT * FROM utenti WHERE username = '$user' AND password = MD5('$pass')";
$res = mysql_query($sql) or die (mysql_error());
// effettuo il login
if ( $res == TRUE ) {
// creo una sessione con l'id dell'utente che lo farà restare connesso tutto il tempo della navigazione
while($row = mysql_fetch_array($res)) {
session_start();
$idutente = $row['id'];
$nomeutente = $row['username'];
$_SESSION['id_utente'] = $idutente;
$_SESSION['nome_utente'] = $nomeutente;
// reindirizzo l'utente nella pagina protetta da login
header("location: paginariservata.php");
}
}
echo "Username o Password non corrette";
} else {
echo "Non sono stati compilati tutti i dati obbligatori";
}
}
?>
</body>
</html>
Gli errori sono questi:
Notice: Undefined index: user in ... on line 33
Notice: Undefined index: pass in … on line 34
Notice: Undefined index: login in … on line 37
Si riferiscono:
$user = $_POST['user'];
$pass = $_POST['pass'];
$login = $_GET['login'];