Buongiorno a tutti,
sto provando a sperimentare la funzione di autenticazione con http.
Ho trovato questo codice che ho modificato per le mie esigenze(modifica momentanea siccome dovrò metterci ancora mano):
Codice PHP:
<?php
if (!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="localhost"');
header('HTTP/1.0 401 Unauthorized');
echo 'Messaggio da inviare se si preme il tasto Cancel';
exit;
}
else
{
$user = strtolower(trim($_SERVER['PHP_AUTH_USER']));
$pass = strtolower(trim($_SERVER['PHP_AUTH_PW']));
echo "<a href=\"login.php?param=$user¶m2=$pass\">";
$return = $_GET['param'];
echo "$return";
if ($return == 1) {
header('WWW-Authenticate: Basic realm="localhost"');
header('HTTP/1.0 401 Unauthorized');
echo 'Messaggio da inviare se si preme il tasto Cancel';
exit;
} elseif ($return == 0) {
?>
[b]Benvenuto[/b]
<?php
}
}
?>
parte del codice l'ho preso dal link: http://php.net/manual/en/features.http-auth.php
Come potete vedere dall'index.php rimando i dati alla pagina login.php:
Codice PHP:
<?php
include_once("include/config.php");
$username = $_GET['param'];
$password = $_GET['param2'];
$utente = mysql_escape_string($username);
$passwo = mysql_escape_string($password);
$sql = "SELECT username, password
FORM utenti
WHERE username='$utente' AND password='$passwo'";
$res = mysql_query($sql) or die ('Invalid query: ' .mysql_error());
if (!isset($res)) {
$return = 1;
echo "<a href=\"index.php?param=$return\">";
} else {
$return = 0;
echo "<a href=\"index.php?param=$return\">";
}
?>
la variabile return serve a farmi sapere se la query ha trovato risultati positivi oppure no.
Ma mi da un errore a riga 15 dell'index dove mi dice che param non è definito e alla linea 8 e 9 nella pagina login.php:
codice:
Deprecated:mysql_escape_string(): This function is deprecated, use mysql_escape_string() instead. in C:\.....
Sto tentando di utilizzare questo tipo di login anche per evitare SQL injection, rischio che con l'attuale tipo di login da me creato, sono soggetto.
Grazie a tutti