-
Problema Logout
Ciao a tutti!
Ho un piccolo problema, non so se sia causato dalla pagina index.php e da logout.php, quando vado su logout.php non mi effettua il logout, adesso vi posto i sorgenti:
index.php
Codice PHP:
<!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>Benvenuto su FareAffari.it!</title>
<link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all">
</head>
<body>
<div id="contenitore">
<div id="logo">
Logo
</div>
<div id="menu">
<?php
session_start(); // inizio della sessione
if($_SESSION['privilegi'] != 0) {
include("pannello_utente.php");
}elseif($_SESSION['privilegi'] != 1){
include("pannello_admin.php");
}else{
include("login.html");
}
?>
<br><br><br>
<br> <br> <br> <br> <br>
<?php
include("categorie.html");
?>
</div>
<div id="corpo">
<br><br>
</div>
</div>
</body>
</html>
logout.php
Codice PHP:
<?PHP
session_start();
session_destroy();
header("Refresh: 2; URL=index.php");
echo "Logout effettuato con successo!";
?>
login.html
Codice HTML:
<HTML>
<HEAD>
<TITLE>FareAffari - Login</TITLE>
</HEAD>
<BODY>
<table border="0" cellspacing="1" cellpadding="0" width="230" align="left" bgcolor="#CCCFFF"><tbody>
<tr><form action="login.php" method="post"><input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>
<table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#CCFFFF"><tbody>
<tr>
<td width="61">Username</td>
<td width="3">:</td>
<td width="143"><input id="myusername" name="myusername" type="text" size="20"></td>
</tr>
<tr>
<td width="61">Password</td>
<td width="3">:</td>
<td width="143"><input id="mypassword" name="mypassword" type="password" size="20"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input name="login" type="submit" value="Login >>" /></td>
<strong>Login Membri</strong>
</tr>
<tr>
<td width="61">Non sei registrato?</td>
<td width="3"></td>
<td width="143"><a href="registrazione/registrazione.html">Registrati!</td>
</tr>
<tr>
<td width="61">Password Dimenticata?</td>
<td width="3"></td>
<td width="143"><a href="pass_dimenticata.php">Recuperala!</td>
</tr>
</tbody></table>
</td>
</form></tr>
</tbody></table>
</BODY>
</HTML>
login_control.php
Codice PHP:
<?php
session_start(); // inizio della sessione
$host="localhost"; // Hostname
$username="archivionegozio1"; // Mysql username
$password=""; // Mysql password
$db_name="my_archivionegozio1"; //Nome del Database
$tbl_name="utenti"; // Nome della Tabella
// Procedimento per connettersi al Database
mysql_connect("$host", "$username", "$password")or die("Connessione Fallita.");
mysql_select_db("$db_name")or die("Database non trovato.");
$username = addslashes($_POST['myusername']);
$pass = addslashes($_POST['mypassword']);
//qui controlli se l'utente ha scritto nel campo se nn sai cm si fa chiedimi
$sql = "SELECT * FROM utenti WHERE username = '".$username."' AND password = '".$pass."'";
$query = mysql_query($sql) or die("errore nella query: ".mysql_error());
if(mysql_num_rows($query) == 1) {
$riga = mysql_fetch_array($query);
$_SESSION['privilegi'] = $riga['privilegi']; // qui hai il grado dell'utente loggato
$_SESSION['username'] = $riga['Username']; // qui l'username
$_SESSION['pass'] = $riga['Password']; // qui la password
header("Refresh: 0; URL=amministrazione/administrationmenu001tptp.php");
}else{
echo "Username o password incoretti";
header("Refresh: 2; URL=index.php");
}
?>
-
session_start() va messo prima di ogni cosa
index.php
Codice PHP:
<?php
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>Benvenuto su FareAffari.it!</title>
<link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all">
</head>
<body>
<div id="contenitore">
<div id="logo">
Logo
</div>
<div id="menu">
<?php
if($_SESSION['privilegi'] != 0) {
include("pannello_utente.php");
}elseif($_SESSION['privilegi'] != 1){
include("pannello_admin.php");
}else{
include("login.html");
}
?>
<br><br><br>
<br> <br> <br> <br> <br>
<?php
include("categorie.html");
?>
</div>
<div id="corpo">
<br><br>
</div>
</div>
</body>
</html>
logout.php
Codice PHP:
<?php
session_start();
session_unset();
session_destroy();
header("Refresh: 2; URL=index.php");
echo"Logout effettuato con successo!";
?>
-
Non funziona, ho provato da un altro computer, modificando come hai detto, ma appena vado alla index, include admin anche se non sono loggato con niente.
Qualcuno mi potrebbe consigliare un altro codice nel index.php per controllare la sessione privilegi?
Privilegi = 0 include pannello_utente.php
Privilegi = 1 include pannello_admin.php
Nessun privilegio (utente non loggato) include login.html
Grazie mille.
-
Codice PHP:
<?php
session_start();
if($_SESSION["privilegi"] === 0) {
$include = "pannello_utente.php";
} else if($_SESSION["privilegi"] === 1) {
$include = "pannello_admin.php";
} else if(!isset($_SESSION["privilegi"])) {
$include = "login.html";
}
include($include);
?>
Hai sbagliato operatore, in php != significa diverso, mentre == significa uguale....
P.S. In questo caso devi usare l'operatore ===
-
Grazie mille per l'info...
C'è un'altro problema purtroppo:
non mi include la pagina. :crycry::incavolat
quello del login funziona perfettamente, ma non mi include le pagine utente e admin.... come risolvere?
il codice aggiornato è questo:
Codice HTML:
<?php
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>Benvenuto su FareAffari.it!</title>
<link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all">
</head>
<body>
<div id="contenitore">
<div id="logo">
Logo
</div>
<div id="menu">
<?php
if($_SESSION["privilegi"] === 0) {
include("pannello_utente.php");
} else if($_SESSION["privilegi"] === 1) {
include("pannello_admin.php");
} else if(!isset($_SESSION["privilegi"])) {
include("login.html");
}
?>
<br><br>
<?php
include("categorie.html");
?>
</div>
<div id="corpo">
<br><br>
</div>
</div>
</body>
</html>
Quando un utente nn è loggato mostra senza problemi login.html, mentre quando l'utente è loggato, che sia admin o utente mostra i due accapo (br) e le categorie, e non le pagine pannello_utente.php o pannello_admin.php
PS: Grazie a tutti coloro che mi hanno risposto e che mi risponderanno.
-
Io ho provato, e funziona, prova a modificare il codice così, e riporta gli errori segnalati:
Codice PHP:
<?php
session_start();
error_reporting(E_ALL);
?>
<!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>Benvenuto su FareAffari.it!</title>
<link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all">
</head>
<body>
<div id="contenitore">
<div id="logo">
Logo
</div>
<div id="menu">
<?php
if($_SESSION["privilegi"] === 0) {
include("pannello_utente.php");
} else if($_SESSION["privilegi"] === 1) {
include("pannello_admin.php");
} else if(!isset($_SESSION["privilegi"])) {
include("login.html");
}
?>
<br><br>
<?php
include("categorie.html");
?>
</div>
<div id="corpo">
<br><br>
</div>
</div>
</body>
</html>
-
Notice: Undefined index: privilegi in /membri/archivionegozio1/index.php on line 23
Notice: Undefined index: privilegi in /membri/archivionegozio1/index.php on line 25
Solo questi dice, quando non c'è nessuno loggato, mentre nessun errore quando è loggato un utente o un admin.
Queste sono le righe interessate:
Codice:
} else if($_SESSION["privilegi"] === 1) {
} else if(!isset($_SESSION["privilegi"])) {