Visualizzazione risultati 1 fino 5 di 5

Discussione: Aiuto sessione

  1. #1
    Guest

    Predefinito Aiuto sessione

    Salve a tutti,

    Vorrei dei chiarmenti. Ho creato una sessione, ho creato una pagina di protezione che permette la visualizzazione solo a chi è loggato, e ho creato una pagina dove loggarsi e una di benvenuto. Il tutto funziona egregiamente. Sulla pagina di benvenuto, vorrei mettere un tastino di logout, ma non me lo visualizza. mi visualizza solo benvenuto pincopallino e mi dice il numero di utenti registrati. Perchè questo benedetto tastino non si visualizza. Ora se tolgo il richiamo della paginaprotetta.php, si visualizza il tastino ma non il benvenuto. Vi posto i codici in modo tale che spero in qualche buon anima che mi dia na risposta. grazie.

    Il primo file si chiama: login.php

    Codice PHP:
    <?php

    require_once("connetti.php");
    require_once(
    "data.php");



    session_start();

    if(isset(
    $_SESSION['utente'])) {
    $username =$_SESSION['utente'];
    $qry= "select * from utenti where username = '".$username."'";
    // echo "AAAAA".$qry."BBBB";
    $result = mysql_query($qry)or die (mysql_error());
    $riga = mysql_fetch_assoc($result);
    echo
    "<center> <h1> <br> Benvenuto ".$riga['nome']."!";
    }
    else
    {
    if(isset(
    $_POST['log']))
    {
    error_reporting(E_ALL ^ E_NOTICE);

    $username = $_POST['username'];
    $password = mysql_real_escape_string(md5($_POST['password']));

    $result = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password' ")or die (mysql_error());
    $controllo = mysql_num_rows($result);
    if(
    $controllo > 0)
    {
    $_SESSION['utente'] = $username;
    header("location:benvenuto.php");
    }
    else
    {
    echo
    " <h1> <center> <br> La password e/o lo username sono sbagliati. Riprovare grazie !!! </center> </h1>";
    }
    }

    else{

    echo
    "<form action='' method='POST'>

    <center>
    <br> <br> <br> <br>

    Username: <input type='text' name='username'> <br> <br>
    Password: <input type='password' name='password'> <br> <br>
    <input type='submit' name='log' value='Loggati'>
    <input type='submit' name='reg' value='Registrati'>
    </center>
    </form>"
    ;
    }

    }
    $userreg = mysql_num_rows(mysql_query("SELECT * FROM utenti"));
    echo
    "<b> <br> <br>".$userreg."</b> utenti registrati</div>";
    if(isset(
    $_POST['reg']))
    {
    header("Location:iscrizione.php");
    }
    ?>
    Il secondo file si chiama benvenut.php

    Codice PHP:
    <?php
    require_once'paginaprotetta.php';

    if(!isset(
    $_POST['esci'])){

    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
    <center>
    <form action= '' method="POST">

    <input type="submit" name="esci" value="Logout" >
    </form>
    </head>
    <body>
    <?php


    }else{
    session_start();

    $_SESSION = array();

    session_destroy();


    echo
    "<center> <h1> Addio !!!! Alla prossima </center> </h1>";

    }
    ?>
    </body>
    </html>
    ovviamente se tolgo questa riga require_once'paginaprotetta.php'; visualizza il tastino ma non il benvenuto.

    L'ultimo file èpaginaprotetta.php

    Codice PHP:
    <?php

    session_start
    ();

    session_regenerate_id(true);

    // Controllo accesso


    if(isset($_SESSION['utente'])) {

    $nome = mysql_real_escape_string(strtolower(trim ($_POST['nome'])));
    echo
    "<h1> <br> <center>";
    // echo "Ciao ".$_SESSION['utente']."!";
    echo "</h1> </br> </center>";


    header('location:login.php');
    exit;
    }
    else
    {
    //echo "Benvenuto ".$_SESSION['$login'];
    }

    ?>
    I due richiami: require_once("connetti.php"); e require_once("data.php"); hanno la funzione, la prima di connettersi al db, e la seconda di visualizzare la data corrente. Sono riportate in tutte le pagine web.
    Spero in un vostro aiuto al più presto. Grazie. Sono rimasto bloccato.

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Il codice per il form del logout è nell'head della pagina, va messo ne body.

  3. #3
    Guest

    Predefinito Ciao

    Ok Faccio questa modifica, ma per quale motivo non mi visualizza il tasto ????

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Quella correzione non è bastata?

    Intanto in cima a paginaprotetta.php, metti una riga per attivare l'output degli errori.
    Codice PHP:
    <?php error_reporting(E_ALL); ?>
    E' probabile che la chiamata ad header() non vada a buon fine, deve essere eseguita prima di qualsiasi output (mentre sopra fai due echo).

  5. #5
    Guest

    Predefinito

    Ciao,

    Allora ho fattcome hai detto ma niente di fatto il risultato è il seguente. provo a mandarti lo screen così ti rendi conto. non so come si manda lo screen qua, tu per caso lo sai ???? Comunque ti mando il listato di quello che ho fatto. Inoltre, mi hai dettoi che

    Codice PHP:

    <?php error_reporting(E_ALL); ?>

    <?php
    require_once("connetti.php");
    require_once(
    "data.php");

    echo
    " <input type='submit' name='eci' value='Logout'>";

    require_once(
    "paginaprotetta.php");
    ?>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>


    </head>
    <body>
    <?php
    // put your code here
    ?>
    </body>
    </html>
    Lavorando sullla pagina benvenuto.php, vorrei includere il tasto maledetto di logout che non mi fa visualizzare. Ma, tu mi hai detto che "Il codice per il form del logout è nell'head della pagina, va messo ne body.", se il codice form di logout e in php come faccio a metterlo nel body ??????

    Allora, perdonami di nuovo. Ma io voglio capire ed imparare. Ti posto qua di seguito, il listato modificato di benvenuto.php forse è un doppione non saprei.

    Codice PHP:

    <?php error_reporting(E_ALL); ?>


    <?php

    require_once("connetti.php");
    require_once(
    "data.php");
    require_once(
    "paginaprotetta.php");

    if(!isset(
    $_POST['out'])){

    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
    </head>
    <form action= '' method="POST">

    <center>
    <br> <br>
    <input type='submit' name='out' value='Logout'>
    </center> </form>
    <body>

    <?php
    }else{


    session_start();

    $_SESSION = array();

    session_destroy();


    echo
    "<br> <br> <center> <h1> Addio !!!! Alla prossima </center> </h1>";

    }
    ?>
    </body>
    </html>
    Come potrai vedere credo di aver fatto come haid etto te. L'unica perplessità è quella del codice di uscita della sessione che mi hai detto che dovrebbe andare in body, se non ho capito male. Comunque sia non va ugualmente. Hai per caso skype ??? Il mio contatto è: mousesenzapalle2007, se vuoi mi puoi aggiungere così magari su skype è più facile. Grazie della collaborazione e pazienza, sopratutto.
    Ultima modifica di fabiodefe : 22-02-2012 alle ore 15.04.06 Motivo: Aggiornamenti

Regole di scrittura

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