Visualizzazione risultati 1 fino 7 di 7

Discussione: Problema Logout

  1. #1
    Guest

    Predefinito 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");
    }
    ?>
    Ultima modifica di programmarealpc : 22-05-2009 alle ore 22.56.30

  2. #2
    Guest

    Predefinito

    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!";
    ?>

  3. #3
    Guest

    Predefinito

    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.

  4. #4
    Guest

    Predefinito

    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 ===
    Ultima modifica di nokiagames : 23-05-2009 alle ore 14.53.20

  5. #5
    Guest

    Angry

    Grazie mille per l'info...

    C'è un'altro problema purtroppo:

    non mi include la pagina.

    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.
    Ultima modifica di archivionegozio1 : 23-05-2009 alle ore 16.37.20 Motivo: Aggiunta PS

  6. #6
    Guest

    Predefinito

    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>

  7. #7
    Guest

    Predefinito

    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"])) {

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •