Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Non capisco l'exit, un aiutino per favore

    Salve, ho bisogno di un aiuto per favore, sto facendo uno script per il login alla mia applicazione web, ho preso l'esempio da un libro di php e mysql, che richiede l'autenticazione del server ecco un frammento:

    if ( !isset($_SESSION['user_id']) )
    {
    header('WWW-Authenticate: Basic realm="Accesso Riservato"');
    header("HTTP/1.0 401 Unauthorized");
    exit;
    }
    ....resto del codice...

    Per poter andare avanti mi è fondamentale poter capire una cosa, se io lascio lo script cosi, mi appare la schermata d'accesso del server in maniera ripetuta fin quando non inserisco le credenziali esatte, se invece tolgo l'exit, dopo il primo tentativo errato la schermata d'autenticazione non mi appare più e non capisco il perchè
    qualcuno sa aiutarmi??
    è come se l'exit facesse tornare indietro l'esecuzione del codice all'if

    Preciso che so che l'exit interrompe l'esecuzione di un codice ma non riesco a capire, aiuto

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    l'exit fa in modo che non vengano eseguite le istruzioni dopo l'if.

    puoi toglierlo facendo così

    da
    Codice PHP:
    if ( !isset($_SESSION['user_id']) )
    {
    header('WWW-Authenticate: Basic realm="Accesso Riservato"');
    header("HTTP/1.0 401 Unauthorized");
    exit;
    }
    ....
    resto del codice... 
    a
    Codice PHP:
    if ( !isset($_SESSION['user_id']) )
    {
    header('WWW-Authenticate: Basic realm="Accesso Riservato"');
    header("HTTP/1.0 401 Unauthorized");

    }
    else
    {
    ....
    resto del codice...


  3. #3
    grazie per aver risposto, questo lo sapevo, ma nel mio esempio ripeto senza l'exit fa apparire la scermata di autenticazione del server ovvero questa
    header('WWW-Authenticate: Basic realm="Accesso Riservato"');

    una volta sola, con l'exit la ripete sempre come se risalisse all'if

    grazie comunque

  4. #4
    La schermata appare una sola volta perché nelle istruzioni seguenti viene impostata la variabile $_SESSION['user_id'].

    Se lasci la exit, o utilizzi il ramo else come indicato da bstefano79, quelle istruzioni non vengono eseguite e la variabile di session non viene valorizzata.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

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 © 2024 vBulletin Solutions, Inc. All rights reserved.