Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema con variabile

  1. #1
    Utente di HTML.it L'avatar di Løque
    Registrato dal
    Oct 2007
    Messaggi
    177

    Problema con variabile

    Sto cercando di fare una pagina di ringraziamento, il problema è che ci sono circostanze in cui si va a ripetere. Vi faccio il mio esempio. Nella home page ho messo questa variabile:

    Codice PHP:
    session_start();
    $_SESSION['grazie'] = "true";
    ?> 
    Poi in grazie.php ci ho messo questo:
    Codice PHP:
    session_start();
    if(
    $_SESSION['grazie'] == "true"){
        
        
    $_SESSION['grazie'] = "false";
        
        echo 
    "GRAZIE!";
        
    }  else {

        echo 
    "FALSE";
        

    Se aggiorno la pagina mi mostra correttamente 'false' ma se torno sulla home page mi risetta la variabile su 'true' e mi "ringrazia" di nuovo. Vorrei che la variabile venga settata una volta sola! Così se torno su grazie.php mi rida false. Il risultato che vorrei è evitare il duplicarsi del "grazie".
    Løque

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Prima di impostare a true la variabile, devi verificare se già esiste con isset(), se già esiste non fai niente perché vuol dire che da lì ci sei già passato, altrimenti la imposti a true.
    Come fai ora, viene sempre impostata a true senza controllare nulla.

    P.S invece di metterci le stringhe "true" "false" usa proprio i booleani, non ha senso fare in quel modo lì, anche i confronti sarebbero più semplici e semanticamente corretti.

  3. #3
    Utente di HTML.it L'avatar di Løque
    Registrato dal
    Oct 2007
    Messaggi
    177
    Come'è l'if per vedere se esiste?
    Løque

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Impostare per la prima è unica volta su true.
    codice:
    //file crea sessione 
    if(session_start()) {
    if(!isset($_SESSION['grazie'])) {
    $_SESSION['grazie'] = true;
    echo 'grazie';
    }
    $_SESSION['grazie'] = false;
    }
    Solo l'esistenza positiva indica che è true, la variabile $_SESSION in rare circostanze potrebbe non esistere
    Il codice si evolve su due file uno creazione e l'altro verifica.
    codice:
    //file crea sessione 
    if(session_start()) {
    if(!isset($_SESSION['grazie'])) {
    $_SESSION['grazie'] = true;
    }
    }
    //fine file crea sessione
    
    //verifica su altro file se esiste $_SESSION['grazie']
    if(session_start()) { //recuperare sessione
    if(isset($_SESSION['grazie'])) {
    if($_SESSION['grazie'] === true) {
    echo 'grazie';
    }
    }
    $_SESSION['grazie'] = false;
    }
    //fine verifica su altro file
    Ultima modifica di darbula; 27-11-2020 a 11:54

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.