Ciao a tutti. Devo fare una pagina di login con le sessioni. Nella testata, uguale per tutte le pagine, deve risultare il nome utente e il saldo se ho fatto il login oppure nome utente anonimo e saldo 0. Nella pagina login ho un form che invia i dati ad una pagina controllo (che effettua connessione al db ecc) la quale, se tutto va come deve, rimanda ad una pagina chiamata paga.
Proobabilmente sbaglio qualcosa con le sessioni e al posto di nome utente e password mi da errore. Ecco i codici:
Pagina login.php
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<Title>Login</Title>
<meta name="author" content="Sainato Stefano">
<meta name="keywords" content="Pagamenti">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
function controllo(user, pass){
if(user==""){
alert("Non hai inserito il nome utente");
return false;
}
else if(pass==""){
alert("Non ha inserito la password");
return false;
}
else{
return true;
}
}
</script>
</head>
<body>
<div class="main">
<div class="header">
<?php
require("header.php");
?>
</div>
<div class="menu">
<?php
require("menu.php");
?>
</div>
<div class="content">
<h2>Login</h2>
Inserire il nome utente e la password.</p>
<form name="login" action="controllo.php" method="POST" onsubmit="return controllo(user.value, pass.value);">
<label for="user">Nome utente: </label><input type= "text" id="user" name="user"></p>
<label for="pass">Password: </label><input type="password" id="pass" name="pass"></p>
<input type="submit" value="OK" class="button"><input type="reset" value="PULISCI" class="button"></p>
</form>
</div>
<div class=footer>
<?php
require("footer.php");
?>
</div>
</div>
</body>
</html>
controllo.php
Codice PHP:
<?php
if(!isset($_REQUEST["user"]) || !isset($_REQUEST["pass"])){
echo"
Devi prima effettuare il [url='login.php']Login[/url]</p>";
exit();
}
if(empty($_REQUEST["user"]) || empty($_REQUEST["pass"])){
echo"
Non hai inserito tutti i dati richiesti. Torna al [url='login.php']Login[/url]</p>";
exit();
}
$user=trim($_REQUEST["user"]);
$pass=trim($_REQUEST["pass"]);
$con =mysqli_connect("localhost","uReadOnly","","pagamenti");
if (mysqli_connect_errno()){
printf ("
errore - collegamento al DB impossibile: %s
\n", mysqli_connect_error());
exit();
}
/*Ripulisco da apici le variabili */
$user=mysqli_real_escape_string($con,$user);
$pass=mysqli_real_escape_string($con,$pass);
$query = "SELECT nick, saldo FROM usr WHERE nick='$user' AND pwd='$pass'";
$result = mysqli_query ($con, $query);
if (! $result){
printf ("
errore – query fallita: %s
\n", mysqli_error($con));
}
else if (mysqli_num_rows($result)==0){
printf("Nome utente e/o password non corretti");
}
else{
session_start();
$row = mysqli_fetch_assoc($result);
$_SESSION['loggedin'] = $row['nick'];
$_SESSION['saldo'] = $row['saldo'];
header('location: paga.php');
}
?>
Header.php
Codice PHP:
<?php
session_start();
$loggedin=$_SESSION['loggedin'];
$saldo=$_SESSION['saldo'];
?>
<h1>Pagamenti</h1>
<p class="header">Utente: <?php echo"$loggedin";?></p>
<p class="header">Saldo: <?php echo"$saldo";?></p>