Salve, vorrei passare come attributo value del tag input una variabile php. Di seguito riporto il codice php e successivamente quello HTML
Codice PHP:
<?php
session_start(); //memorizzare UID nella variabile di sessione
$_SESSION['ID']=$riga[UID];
session_write_close(); /*da chiudersi appena memorizzate le variabili di sessione
permette di fare eseguire alla sessione più operazioni in pipeline
(ad esempio la visualizzazione dei risultati di query diverse su più pagine)*/
$mysqli = new mysqli('localhost','root','','DB');
if (mysqli_connect_error())
die("Errore durante la connessione");
if (isset($_POST['submit']))
{
if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username'] != '' && $_POST['password'] != '')
{
$username = $_POST['username'];
$password = $_POST['password'];
//SQL Injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = $mysqli->real_escape_string($username);
$password = $mysqli->real_escape_string($password);
$risultato = $mysqli->query("SELECT UID, UserName, Password, DataScadenza FROM Account WHERE UserName = '$username' AND Password = sha1('$password')"); //sha1 on query
$riga = $risultato->fetch_assoc();
$data = date("Y-m-d H:i:s");
$scadenza = $riga[DataScadenza];
$data1 = strtotime($data);
$data2 = strtotime($scadenza);
if ($username == $riga[UserName])
{
if (strlen($password)>=8)
{
if ($data1 <= $data2)
{
header('Location: [url]http://localhost/prova/home.php[/url]');
$risultato->close();
}
else
{
$errore='Account scaduto - Per maggiori informazioni contattare l\'amministratore';
$risultato->close();
}
}
else
{
$errore='Password non valida (minimo 8 caratteri)'; //account.php
$risultato->close();
}
}
else
{
$risultato->close();
header('Location: [url]http://localhost/prova/loginerr.php[/url]');
}
}
else
{
if(isset($risultato))
$risultato->close(); //tale oggetto è definito fino a questo punto
header('Location: [url]http://localhost/prova/loginerr.php[/url]');
}
}
if(isset($errore))
echo"$errore";
$mysqli->close();
?>
<?php
include("control.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Errore durante il login</title>
<style type="text/css">
body,p,a,span,div,input,legend,h1,h2,h3,h4,h5,h6,l i,dd,dt,th,td{
font-family:Arial, Helvetica, sans-serif;
}
body,p,a,span,div,input,legend,li,dd,dt,th,td{
font-size:10pt;
}
#loginform {
width:300px;
margin:auto;
}
#loginform fieldset{
padding:10px;
}
#loginform legend{
font-weight:bold;
font-size:9pt;
}
#loginform label{
display:block;
height:2em;
background-color:#E7E7E7;
padding:10px 10px 0;
}
#loginform input {
margin-right:20px;
border:1px solid #999999;
float:right;
clear:right;
background:#CCCCCC;
}
#loginform input:focus,#loginform input:hover {
border:1px solid #333333;
}
.error{
color:red;
}
.centrato{
display:block;
position:absolute;
top:50%;
left:50%;
margin:-150px 0 0 -150px;
}
</style>
</head>
<body>
<div class="centrato">
<form id="loginform" method="post" action="<?php $_SERVER['PHP_SELF']?>">
<fieldset>
<legend>Nome utente o password errati!</legend>
Inserisci nome utente e password per accedere al portale</p>
<div class="error"><label for="username"><input type="text" name="username" tabindex="1" id="username" value="<?php if(isset($_POST['username'])) echo $_POST['username']; else echo"errore"; ?>" />username:
</label>
<label for="password"><input type="password" name="password" tabindex="2" id="password" />password:
</label>
</div>
<label for="submit">
<input name="submit" type="submit" id="submit" tabindex="4" value="Log in" />
</label>
</p>
</fieldset>
</form>
</div>
</body>
</html>
Purtroppo la variabile $_POST['username'] non risulta definita? Come mai? Qualche soluzione?