Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Sessioni PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500

    Sessioni PHP

    Salve,
    sto facendo un pannello admin in PHP.. Sto lavorando con le sessioni..

    Uso la sessione admin che gli do valore 1 una volta che effettuo il login quindi ad inizio del codice metto:
    if(!isset($_SESSION['admin']))

    In questo caso se vale 0 cioè non ho effettuato il login entra nell'if e ti fa effettuare il login altrimenti ti reindrizza giustamente ad un'altra pagina che si chiama home.php.

    Il problema nasce se una persona normale scrive il percorso sito/home.php lo lascia entrare anche senza login.. li ho provato a mettere un controllo

    if(!isset($_SESSION['admin'])){
    header("Location: login.php");
    }

    Ma quando faccio così sembra che vadi tutto in tilt infatti il broswer non carica la pagina.. cosa devo farE?

  2. #2
    ne feci a mio tempo uno del tutto simile al tuo .

    http://forum.html.it/forum/showthrea...readid=1378835

    correggi con le virgolette... oppure modifica "ok" con 1 ed è identico quasi...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    hai messo session_start() in testa alla pagina?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    sil'ho messo.. messo tutto però non capisco perchè non va!

  5. #5

    Re: Sessioni PHP

    Originariamente inviato da Vicar

    if(!isset($_SESSION['admin'])){
    header("Location: login.php");
    }
    Aggiungi:
    else{ echo "ciao".$_SESSION['admin']; }

    probabilmente non è stata distrutta la sessione precedentemente

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    posta il codice...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539

    Re: Re: Sessioni PHP

    Originariamente inviato da ebarat.com
    Aggiungi:
    else{ echo "ciao".$_SESSION['admin']; }

    probabilmente non è stata distrutta la sessione precedentemente
    se non ha chiuso tutte le finestre non l'ha distrutta a mano sicuramente questa rimane appesa!

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Codice login:
    Codice PHP:

    <?php
    error_reporting
    (E_ALL);
    session_start();
    include(
    "../config.php");
    $script='<link rel="stylesheet" href="../css/login.css" type="text/css" />';
    if(!isset(
    $_SESSION['admin'])){
        if(!isset(
    $_GET['action'])){
            
    $content='<div id="container">
        <div id="content">
            <h2>Per cortesia devi loggarti</h2>        

    Inserisci il tuo nome utente e password per continuare.</p>

            <form method="post" action="login.php?action=attendere">
            <div class="form_container">

                <div class="label"><label for="username">Nome utente:</label></div>

                <div class="field"><input type="text" name="username" id="username" class="text_input initial_focus" /></div>

                <div class="label"><label for="password">Password:</label></div>
                <div class="field"><input type="password" name="password" id="password" class="text_input" /></div>

            </div>
            <p class="submit">
                <input type="submit" value="Login" />
            </p>
            </form>
        </div>
    </div>
    '
    ;
        }elseif(
    $_GET['action']=="attendere"){
            if(
    $_POST['username']==$username && $_POST['password']==$password){
                
    $_SESSION['admin']=1;
                
    header("Location: home.php");
            }else{
                
    header("Location: login.php");
            }
        }
    }else{ 
        
    header("Location: home.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=iso-8859-1" />
    <title>Effettua il login</title>
    <?=$script?>
    </head>
    <body>
    <?=$content?>
    </body>
    </html>
    Qui c'è la sessione admi che e vale 0 ti fa fare l'accesso altrimenti ti spedisce allahome del pannello..

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    in pratica

    if(!isset($_SESSION['admin'])){

    ti ritorna sempre true?
    hai chiuso tutte le finestre del browser?
    al limite fai così..hai detto che la variabile contiene 1 o 0....

    Codice PHP:
    if(!isset($_SESSION['admin']) || (isset($_SESSION['admin']) && $_SESSION['admin']!=1)){ 
    così nella condizione entri se non esiste o se esiste ma non è 1....

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    No la sessione non ale niente all'inizio.. quando effettua il logingli do valore 1.. vedi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.