Salve, sto programmando un piccolo sito web e avrei bisogno di memorizzare un cookie per il login. Ma quando cerco di fare il login attivando l'opzione del cookie mi da errore dicendo che l'header è gia stato inviato. Inoltre, quando cerco di visualizzare il messaggio di saluto (div Alto) al posto del messaggio viene visualizzato solo uno 0. Ecco il codice della pagina di login. Come posso risolvere?
<?php
include 'config.php';
connect();
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Harchius</title>
<link href="style.css" rel="stylesheet" type="text/css" /></head>
<body id="Body">
<div id="Banner"><img src="images/portable os.jpg" width="603" height="132" />
<noscript></noscript>
</div>
<div id="Alto">
<?php
$user;
if (isset($_COOKIE["portableos"])){
$user = "Benvenuto su Portable OS, " + $_COOKIE["portableos"];
} else {
if(isset($_SESSION['utente'])){
$user = "Benvenuto su Portable OS, " + $_SESSION['utente'];
} else {
$user = "Benvenuto su Portable OS, visitatore. Fai click <a href=./login.php?azione=login target=_self>qui</a> per fare il login.";
}
}
echo $user;
?>
</p>
</div>
<div id="Contenuto">
<?php
$p = $_GET['azione'];
if($p == "login"){
if(!isset($_POST['invia'])){ ?>
<form method="post" action="#" id="formlogin">
<p>
<label for="username">Username</label>
<br/>
<input type="text" name="username" id="username" /><br/>
<label for="password">Password</label>
<br/>
<input type="password" name="password" id="password" /><br/>
<input type="submit" name="invia" id="login" value="Accedi" />
<input name="cookie" type="checkbox" id="cookie" />
<label for="cookie">Ricordami per 30 giorni</label>
</p>
<p>Non sei registrato? <a href="register.php" target="_self">Registrati ora</a>.</p>
</form>
<?php } else {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if($username == "" || $password == ""){
echo "Attenzione, devi compilare tutti i campi";
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/login.php?azione=login";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
} else {
$password_cript = md5($password);
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
$verificadati = mysql_num_rows($recuperadati);
if($verificadati == 1){
$sessione = mysql_fetch_array($recuperadati);
if(isset($_POST['cookie'])) {
setcookie("portableos", $sessione['username'], time() +2592000);
}
$_SESSION['utente'] = $sessione['username'];
echo "Login effettuato con successo!";
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/index.php";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
} else {
echo "Errore, controlla i dati inseriti!";
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/login.php?azione=login";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
}
}
}
} elseif ($p == "logout"){
session_destroy();
setcookie("portableos");
echo "Logout effettuato con successo!";
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/index.php";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
} elseif ($p == "redir"){
if(!isset($_POST['invia'])){ ?>
<form method="post" action="#" id="formlogin">
<p>
<label for="username">Username</label>
<br/>
<input type="text" name="username" id="username" /><br/>
<label for="password">Password</label>
<br/>
<input type="password" name="password" id="password" /><br/>
<input type="submit" name="invia" id="login" value="Accedi" />
<input name="cookie" type="checkbox" id="cookie" />
<label for="cookie">Ricordami per 30 giorni</label>
</p>
<p>Non sei registrato? <a href="register.php" target="_self">Registrati ora</a>.</p>
</form>
<?php } else {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if($username == "" || $password == ""){
echo "Attenzione, devi compilare tutti i campi";
$link = $_GET['link'];
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/login.php?azione=redirect&link=<?php echo $link; ?>";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
} else {
$password_cript = md5($password);
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
$verificadati = mysql_num_rows($recuperadati);
if($verificadati == 1){
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['utente'] = $sessione['username'];
if(isset($_POST['cookie'])) {
setcookie("portableos", $username, time() +2592000);
}
echo "Login effettuato con successo!";
$link = $_GET['link'];
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/<?php echo $link; ?>";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
} else {
echo "Errore, controlla i dati inseriti!";
$link = $_GET['link'];
?>
<script type="text/javascript">
function doRedirect() {
location.href = "http://portableos.heliohost.org/login.php?azione=redir&link=<?php echo $link; ?>";
}
window.setTimeout("doRedirect()", 2000);
</script>
<?php
}
}
}
}
?>
</div>
</body>
</html>